Hi,
The round-trip-time client doesn't handle failures of the socket_rt and bind_rt calls. This patch fixes it, similar to the way the server does.
With friendly regards, Takis
-- K.U.Leuven, Mechanical Eng., Mechatronics & Robotics Research Group http://people.mech.kuleuven.ac.be/~pissaris/
Index: addons/examples/round-trip-time/client/rt_client.c =================================================================== --- addons/examples/round-trip-time/client/rt_client.c (revision 755) +++ addons/examples/round-trip-time/client/rt_client.c (working copy) @@ -150,6 +150,7 @@ int init_module(void) { + int ret = 0; rtos_time_t cycle; unsigned int local_ip; unsigned int server_ip = rt_inet_aton(server_ip_s); @@ -180,14 +181,21 @@ rtos_fifo_create(&print_fifo, PRINT_FIFO, 8000); /* create rt-socket */ - sock = socket_rt(AF_INET,SOCK_DGRAM,0); + if ((sock = socket_rt(AF_INET,SOCK_DGRAM,0)) < 0) { + printk("socket not created\n"); + return -ENOMEM; + } /* bind the rt-socket to local_addr */ memset(&local_addr, 0, sizeof(struct sockaddr_in)); local_addr.sin_family = AF_INET; local_addr.sin_port = htons(RCV_PORT); local_addr.sin_addr.s_addr = local_ip; - bind_rt(sock, (struct sockaddr *)&local_addr, sizeof(struct sockaddr_in)); + if ( (ret = bind_rt(sock, (struct sockaddr *)&local_addr, sizeof(struct sockaddr_in))) < 0) { + printk("can't bind rtsocket\n"); + close_rt(sock); + return ret; + } /* set server-addr */ memset(&server_addr, 0, sizeof(struct sockaddr_in));