diff options
Diffstat (limited to 'otherlibs/win32unix/socket.c')
| -rw-r--r-- | otherlibs/win32unix/socket.c | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/otherlibs/win32unix/socket.c b/otherlibs/win32unix/socket.c deleted file mode 100644 index 079473f81f..0000000000 --- a/otherlibs/win32unix/socket.c +++ /dev/null @@ -1,55 +0,0 @@ -/***********************************************************************/ -/* */ -/* Objective Caml */ -/* */ -/* Xavier Leroy and Pascal Cuoq, projet Cristal, INRIA Rocquencourt */ -/* */ -/* Copyright 1996 Institut National de Recherche en Informatique et */ -/* en Automatique. All rights reserved. This file is distributed */ -/* under the terms of the GNU Library General Public License, with */ -/* the special exception on linking described in file ../../LICENSE. */ -/* */ -/***********************************************************************/ - -/* $Id$ */ - -#include <mlvalues.h> -#include "unixsupport.h" - -int socket_domain_table[] = { - PF_UNIX, PF_INET -}; - -int socket_type_table[] = { - SOCK_STREAM, SOCK_DGRAM, SOCK_RAW, SOCK_SEQPACKET -}; - -CAMLprim value unix_socket(domain, type, proto) - value domain, type, proto; -{ - SOCKET s; - int oldvalue, oldvaluelen, newvalue, retcode; - - oldvaluelen = sizeof(oldvalue); - retcode = getsockopt(INVALID_SOCKET, SOL_SOCKET, SO_OPENTYPE, - (char *) &oldvalue, &oldvaluelen); - if (retcode == 0) { - /* Set sockets to synchronous mode */ - newvalue = SO_SYNCHRONOUS_NONALERT; - setsockopt(INVALID_SOCKET, SOL_SOCKET, SO_OPENTYPE, - (char *) &newvalue, sizeof(newvalue)); - } - s = socket(socket_domain_table[Int_val(domain)], - socket_type_table[Int_val(type)], - Int_val(proto)); - if (retcode == 0) { - /* Restore initial mode */ - setsockopt(INVALID_SOCKET, SOL_SOCKET, SO_OPENTYPE, - (char *) &oldvalue, oldvaluelen); - } - if (s == INVALID_SOCKET) { - win32_maperr(WSAGetLastError()); - uerror("socket", Nothing); - } - return win_alloc_socket(s); -} |
