From 351b7594ff60e537134ad16d3d6b6cb2b8bf4ced Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sun, 7 Apr 2013 10:54:17 +0000 Subject: Fixed bug #398. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@5563 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/platforms/Posix/serial_lld.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'os/hal/platforms') diff --git a/os/hal/platforms/Posix/serial_lld.c b/os/hal/platforms/Posix/serial_lld.c index 28cd19421..cfe6792ca 100644 --- a/os/hal/platforms/Posix/serial_lld.c +++ b/os/hal/platforms/Posix/serial_lld.c @@ -64,6 +64,9 @@ static u_long nb = 1; static void init(SerialDriver *sdp, uint16_t port) { struct sockaddr_in sad; struct protoent *prtp; + int sockval = 1; + socklen_t socklen = sizeof(sockval); + if ((prtp = getprotobyname("tcp")) == NULL) { printf("%s: Error mapping protocol name to protocol number\n", sdp->com_name); @@ -76,6 +79,9 @@ static void init(SerialDriver *sdp, uint16_t port) { goto abort; } + + setsockopt(sdp->com_listen, SOL_SOCKET, SO_REUSEADDR, &sockval, socklen); + if (ioctl(sdp->com_listen, FIONBIO, &nb) != 0) { printf("%s: Unable to setup non blocking mode on socket\n", sdp->com_name); goto abort; -- cgit v1.2.3