X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fac%2Fsocket.h;h=e640e6c8c2893f332a6bec5f19fd3e0587912b58;hb=12ed7e46ef97df8bc628c48eb6bbd121db95d2b2;hp=ced2879abf504025c903d85769e29982ccc6ea8e;hpb=fb7d6ce5df33c8e61f6104a46245eec4ffea090d;p=openldap diff --git a/include/ac/socket.h b/include/ac/socket.h index ced2879abf..e640e6c8c2 100644 --- a/include/ac/socket.h +++ b/include/ac/socket.h @@ -1,6 +1,15 @@ /* * Generic socket.h */ +/* + * Copyright 1998,1999 The OpenLDAP Foundation, Redwood City, California, USA + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted only + * as authorized by the OpenLDAP Public License. A copy of this + * license is available at http://www.OpenLDAP.org/license.html or + * in file LICENSE in the top-level directory of the distribution. + */ #ifndef _AC_SOCKET_H_ #define _AC_SOCKET_H_ @@ -17,12 +26,23 @@ #endif #include + +#ifdef HAVE_ARPA_INET_H #include +#endif + +#ifdef HAVE_ARPA_NAMESER_H #include +#endif + #include + +#ifdef HAVE_RESOLV_H #include #endif +#endif /* HAVE_SYS_SOCKET_H */ + #ifdef HAVE_WINSOCK2 #include #elif HAVE_WINSOCK @@ -36,35 +56,45 @@ #endif /* HAVE_PCNFS */ #ifndef INADDR_LOOPBACK -#define INADDR_LOOPBACK ((unsigned long) 0x7f000001) +#define INADDR_LOOPBACK (0x7f000001UL) #endif #ifndef MAXHOSTNAMELEN #define MAXHOSTNAMELEN 64 #endif -#ifdef MACOS -#define tcp_close( s ) tcpclose( s ) -#else /* MACOS */ -#ifdef DOS -#ifdef PCNFS -#define tcp_close( s ) close( s ) -#endif /* PCNFS */ -#ifdef NCSA -#define tcp_close( s ) netclose( s ); netshut() -#endif /* NCSA */ -#ifdef WINSOCK -#define tcp_close( s ) closesocket( s ); -#endif /* WINSOCK */ -#else /* DOS */ -#define tcp_close( s ) close( s ) -#endif /* DOS */ +#ifdef HAVE_WINSOCK +# define tcp_close( s ) closesocket( s ); +# define ioctl( s, c, a ) ioctlsocket( (s), (c), (a) ) +# define ioctl_t u_long + +#define EWOULDBLOCK WSAEWOULDBLOCK + +#elif MACOS +# define tcp_close( s ) tcpclose( s ) +#elif DOS +# ifdef PCNFS +# define tcp_close( s ) close( s ) +# endif /* PCNFS */ +# ifdef NCSA +# define tcp_close( s ) do { netclose( s ); netshut() } while(0) +# endif /* NCSA */ +#else +# define tcp_close( s ) close( s ) #endif /* MACOS */ -#if !defined(__alpha) || defined(VMS) -#define AC_HTONL( l ) htonl( l ) -#define AC_NTOHL( l ) ntohl( l ) -#else /* __alpha && !VMS */ +#ifndef ioctl_t +# define ioctl_t int +#endif + +#if defined(__WIN32) && defined(_ALPHA) +/* NT on Alpha is hosed. */ +#define AC_HTONL( l ) \ + ((((l)&0xff)<<24) + (((l)&0xff00)<<8) + \ + (((l)&0xff0000)>>8) + (((l)&0xff000000)>>24)) +#define AC_NTOHL(l) LBER_HTONL(l) + +#elif defined(__alpha) && !defined(VMS) /* * htonl and ntohl on the DEC Alpha under OSF 1 seem to only swap the * lower-order 32-bits of a (64-bit) long, so we define correct versions @@ -76,6 +106,10 @@ #define AC_NTOHL( l ) (((long)ntohl( (l) & 0x00000000FFFFFFFF )) << 32 \ | ntohl( ( (l) & 0xFFFFFFFF00000000 ) >> 32 )) -#endif /* __alpha && !VMS */ +#else +#define AC_HTONL( l ) htonl( l ) +#define AC_NTOHL( l ) ntohl( l ) +#endif + #endif /* _AC_SOCKET_H_ */