summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorDominik Picheta <dominikpicheta@googlemail.com>2014-02-28 19:31:12 +0000
committerDominik Picheta <dominikpicheta@googlemail.com>2014-02-28 19:31:12 +0000
commit0d263f155bc19fcd3797b212d177c22dc213a2d4 (patch)
tree4a6ac6a8e66a8cbf1f9131916a6294cbd407a743 /lib
parent25f6e0c681f49e3798d1cffcd426ea0f1f014ff0 (diff)
downloadNim-0d263f155bc19fcd3797b212d177c22dc213a2d4.tar.gz
Fixes sockets2 on Windows.
Diffstat (limited to 'lib')
-rw-r--r--lib/pure/sockets2.nim11
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/pure/sockets2.nim b/lib/pure/sockets2.nim
index 031217b90..3542a0694 100644
--- a/lib/pure/sockets2.nim
+++ b/lib/pure/sockets2.nim
@@ -17,7 +17,6 @@ when hostos == "solaris":
 
 when defined(Windows):
   import winlean
-  export ioctlsocket
 else:
   import posix
   export fcntl, F_GETFL, O_NONBLOCK, F_SETFL
@@ -66,6 +65,16 @@ type
 when defined(windows):
   let
     osInvalidSocket* = winlean.INVALID_SOCKET
+
+  const
+    IOCPARM_MASK* = 127
+    IOC_IN* = int(-2147483648)
+    FIONBIO* = IOC_IN.int32 or ((sizeof(int32) and IOCPARM_MASK) shl 16) or 
+                             (102 shl 8) or 126
+
+  proc ioctlsocket*(s: TSocketHandle, cmd: clong, 
+                   argptr: ptr clong): cint {.
+                   stdcall, importc: "ioctlsocket", dynlib: "ws2_32.dll".}
 else:
   let
     osInvalidSocket* = posix.INVALID_SOCKET