From: Sapana K. <sap...@pe...> - 2014-07-09 05:12:17
|
Hi Tom Thanks for reply. I have referred psock-server example while implementing this. I have already called PSOCK_BEIGN and PSOCK_END etc. The main difference between my code and psocket-server example code is that I have added functions recv and send and called PSCOK_SEND and PSOCK_READBUF in these functions. I have checked definitions of PSOCK_SEND and PSOCK_READ, here they are call process wait till send and receive is completed by psocket thread. I have not found switch or case statement anywhere in definition still I am getting error “case label not within a switch statement” Appreciate help. Thanks Sapana From: Tom [mailto:my....@gm...] Sent: Tuesday, July 08, 2014 10:01 PM To: Contiki developer mailing list Subject: Re: [Contiki-developers] compilation error while using psocket Hi, To understand the usage start looking at the psock-client or psock-server in examples folder.... From PSOCKs documentation: * Because each protosocket runs as a protothread, the protosocket has to be * started with a call to PSOCK_BEGIN() at the start of the function * in which the protosocket is used. Similarly, the protosocket protothread can * be terminated by a call to PSOCK_EXIT(). if you look at the definition of PSOCK_SEND to you will get a better idea of the compilation problem.. Regards, Tom On Tue, Jul 8, 2014 at 3:57 PM, Sapana Khemkar <sap...@pe...<mailto:sap...@pe...>> wrote: Hi developers I am trying to port polarssl library in Contiki 2.7. I am using psocket for TCP port. In Polarssl, I have to set underlying BIO read/write callback functions using ssl_set_bio() function. My code is something like below tcp_listen(UIP_HTONS(SERVER_PORT)); while(1) { if(uip_connected()) { printf("Client connected...\n"); PSOCK_INIT(&psocket, inputbuf, sizeof(inputbuf)); ssl_set_bio( &ssl, recv, &psocket, send, &psocket ); /* wait until the connection is aborted, closed, or times out. */ while(!(uip_aborted() || uip_closed() || uip_timedout())) { PROCESS_WAIT_EVENT_UNTIL(ev == tcpip_event); handle_connection(&psocket); } } } My recv and send functions are static int send(void *ctx, const unsigned char *buf, size_t len) { struct psock *psocket = ( struct psock *) ctx; //TO DO: handle case if len > PSOCK_DATALEN(psocket) PSOCK_SEND(psocket, inputbuf, len); //TO DO:check how psocket works if send fails to transmit len bytes Do we have timeout? return len; } int recv(void *ctx, unsigned char *buf, size_t len) { struct psock *psocket = (struct psock *) ctx; PSOCK_READBUF_LEN( psocket, len ); memcpy( buf, inputbuf, len); //TO DO:check how psocket works if read fails to receive len bytes Do we have timeout? return len; } static PT_THREAD(handle_connection(struct psock *p)) { PSOCK_BEGIN(p); while( ( ret = ssl_handshake( &ssl ) ) != 0 ) { if( ret != POLARSSL_ERR_NET_WANT_READ && ret != POLARSSL_ERR_NET_WANT_WRITE ) { printf( " failed\n ! ssl_handshake returned %d\n\n", ret ); } } printf( "ssl handshake ok\n" ); PSOCK_CLOSE(p); PSOCK_END(p); } When I compile this code for cooja, I get following compilation error in recv and send function ssl_server_new.c: In function ârecvâ: ssl_server_new.c:73:2: error: case label not within a switch statement ssl_server_new.c: In function âsendâ: ssl_server_new.c:82:2: error: case label not within a switch statement make: *** [ssl_server_new.co<http://ssl_server_new.co>] Error 1 Can someone help me to understand what is this error? Why PSOCK_SEND and PSOCK_READBUF_LEN throwing compilation error? Appreciate your help. Thanks Sapana DISCLAIMER ========== This e-mail may contain privileged and confidential information which is the property of Persistent Systems Ltd. It is intended only for the use of the individual or entity to which it is addressed. If you are not the intended recipient, you are not authorized to read, retain, copy, print, distribute or use this message. If you have received this communication in error, please notify the sender and delete all copies of this message. Persistent Systems Ltd. does not accept any liability for virus infected mails. ------------------------------------------------------------------------------ Open source business process management suite built on Java and Eclipse Turn processes into business applications with Bonita BPM Community Edition Quickly connect people, data, and systems into organized workflows Winner of BOSSIE, CODIE, OW2 and Gartner awards http://p.sf.net/sfu/Bonitasoft _______________________________________________ Contiki-developers mailing list Con...@li...<mailto:Con...@li...> https://lists.sourceforge.net/lists/listinfo/contiki-developers DISCLAIMER ========== This e-mail may contain privileged and confidential information which is the property of Persistent Systems Ltd. It is intended only for the use of the individual or entity to which it is addressed. If you are not the intended recipient, you are not authorized to read, retain, copy, print, distribute or use this message. If you have received this communication in error, please notify the sender and delete all copies of this message. Persistent Systems Ltd. does not accept any liability for virus infected mails. |