# 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;}