diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 2000-03-16 13:35:20 +0000 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 2000-03-16 13:35:20 +0000 |
commit | b070d1dce08a924cfdae5b5304318a990ebb73c8 (patch) | |
tree | adbee9f1271b251af595e3a1ac42c545f02d3237 /otherlibs/win32unix/accept.c | |
parent | 3375e52091a4274b9503be74351a4aada59a94db (diff) |
MAJ portage Win32
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2962 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'otherlibs/win32unix/accept.c')
-rw-r--r-- | otherlibs/win32unix/accept.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/otherlibs/win32unix/accept.c b/otherlibs/win32unix/accept.c index 0ef5d4d6c..fcd3fa514 100644 --- a/otherlibs/win32unix/accept.c +++ b/otherlibs/win32unix/accept.c @@ -25,6 +25,8 @@ value unix_accept(sock) /* ML */ SOCKET snew; value fd = Val_unit, adr = Val_unit, res; int oldvalue, oldvaluelen, newvalue, retcode; + union sock_addr_union addr; + socklen_param_type addr_len; oldvaluelen = sizeof(oldvalue); retcode = getsockopt(INVALID_SOCKET, SOL_SOCKET, SO_OPENTYPE, @@ -35,9 +37,9 @@ value unix_accept(sock) /* ML */ setsockopt(INVALID_SOCKET, SOL_SOCKET, SO_OPENTYPE, (char *) &newvalue, sizeof(newvalue)); } - sock_addr_len = sizeof(sock_addr); + addr_len = sizeof(sock_addr); enter_blocking_section(); - snew = accept(sconn, &sock_addr.s_gen, &sock_addr_len); + snew = accept(sconn, &addr.s_gen, &addr_len); leave_blocking_section(); if (retcode == 0) { /* Restore initial mode */ @@ -48,7 +50,7 @@ value unix_accept(sock) /* ML */ unix_error(WSAGetLastError(), "accept", Nothing); Begin_roots2 (fd, adr) fd = win_alloc_handle((HANDLE) snew); - adr = alloc_sockaddr(); + adr = alloc_sockaddr(&addr, addr_len); res = alloc_small(2, 0); Field(res, 0) = fd; Field(res, 1) = adr; |