# HG changeset patch # User Edouard Tisserant # Date 1549879621 -3600 # Node ID 1223f413e0540e15b7ac71fb0b6b90d7c3306e22 # Parent 19bf8e678c42f18578b2006fa200e4d141ac9c36 Setting socket option so that TCP Modbus slave can re-use same port immediately after freeing it diff -r 19bf8e678c42 -r 1223f413e054 sin_util.c --- a/sin_util.c Fri Nov 16 09:28:12 2018 +0100 +++ b/sin_util.c Mon Feb 11 11:07:01 2019 +0100 @@ -153,6 +153,10 @@ if ((type = gettypebyname(protocol)) == SOCK_PACKET) return -1; /* create the socket */ if ((s = socket(PF_INET, type, 0)) < 0) {perror("socket()"); return -1;} + if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &(int){ 1 }, sizeof(int)) < 0) { + perror("setsockopt(SO_REUSEADDR) failed"); + return -1; + } /* bind the socket */ if (bind(s, (struct sockaddr *)&sin, sizeof (sin)) < 0) {perror("bind()"); return -1;}