浏览代码

Use accept4 in TCP PI if available

Stéphane Raimbault 11 年之前
父节点
当前提交
5c9598fb0f
共有 1 个文件被更改,包括 6 次插入1 次删除
  1. 6 1
      src/modbus-tcp.c

+ 6 - 1
src/modbus-tcp.c

@@ -664,7 +664,12 @@ int modbus_tcp_pi_accept(modbus_t *ctx, int *s)
     }
 
     addrlen = sizeof(addr);
-    ctx->s = accept(*s, (void *)&addr, &addrlen);
+#ifdef HAVE_ACCEPT4
+    /* Inherit socket flags and use accept4 call */
+    ctx->s = accept4(*s, (struct sockaddr *)&addr, &addrlen, SOCK_CLOEXEC);
+#else
+    ctx->s = accept(*s, (struct sockaddr *)&addr, &addrlen);
+#endif
     if (ctx->s == -1) {
         close(*s);
         *s = -1;