浏览代码

Use a unsigned long for ioctlsocket on Windows

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

+ 5 - 2
src/modbus-tcp.c

@@ -226,8 +226,11 @@ static int _modbus_tcp_set_ipv4_options(int s)
     option = 1;
     option = 1;
 #if !defined(SOCK_NONBLOCK) && defined(FIONBIO)
 #if !defined(SOCK_NONBLOCK) && defined(FIONBIO)
 #ifdef OS_WIN32
 #ifdef OS_WIN32
-    /* Setting FIONBIO expects an unsigned long according to MSDN */
-    ioctlsocket(s, FIONBIO, &option);
+    {
+        /* Setting FIONBIO expects an unsigned long according to MSDN */
+        u_long loption = 1;
+        ioctlsocket(s, FIONBIO, &loption);
+    }
 #else
 #else
     ioctl(s, FIONBIO, &option);
     ioctl(s, FIONBIO, &option);
 #endif
 #endif