4 * Copyright 1998-2000 The OpenLDAP Foundation, Redwood City, California, USA
7 * Redistribution and use in source and binary forms are permitted only
8 * as authorized by the OpenLDAP Public License. A copy of this
9 * license is available at http://www.OpenLDAP.org/license.html or
10 * in file LICENSE in the top-level directory of the distribution.
16 #ifdef HAVE_SYS_TYPES_H
17 #include <sys/types.h>
20 #ifdef HAVE_SYS_SOCKET_H
21 #include <sys/socket.h>
27 #ifdef HAVE_SYS_SELECT_H
28 #include <sys/select.h>
31 #include <netinet/in.h>
33 #ifdef HAVE_NETINET_TCP_H
34 #include <netinet/tcp.h>
37 #ifdef HAVE_ARPA_INET_H
38 #include <arpa/inet.h>
41 #ifdef HAVE_ARPA_NAMESER_H
42 #include <arpa/nameser.h>
51 #endif /* HAVE_SYS_SOCKET_H */
63 #endif /* HAVE_PCNFS */
65 #ifndef INADDR_LOOPBACK
66 #define INADDR_LOOPBACK (0x7f000001UL)
69 #ifndef MAXHOSTNAMELEN
70 #define MAXHOSTNAMELEN 64
75 #define sock_errno() errno
76 #define sock_errstr(e) STRERROR(e)
79 # define tcp_close( s ) closesocket( s )
80 # define tcp_read( s, buf, len ) recv( s, buf, len, 0 )
81 # define tcp_write( s, buf, len ) send( s, buf, len, 0 )
82 # define ioctl( s, c, a ) ioctlsocket( (s), (c), (a) )
83 # define ioctl_t u_long
84 # define AC_SOCKET_INVALID ((unsigned int) ~0)
87 # define tcp_close( s ) (shutdown( s, SD_BOTH ), closesocket( s ))
89 # define tcp_close( s ) closesocket( s )
92 #define EWOULDBLOCK WSAEWOULDBLOCK
93 #define EINPROGRESS WSAEINPROGRESS
94 #define ETIMEDOUT WSAETIMEDOUT
98 #define sock_errno() WSAGetLastError()
99 #define sock_errstr(e) ber_pvt_wsa_err2string(e)
101 LBER_F( char * ) ber_pvt_wsa_err2string LDAP_P((int));
104 # define tcp_close( s ) tcpclose( s )
105 # define tcp_read( s, buf, len ) tcpread( s, buf, len )
106 # define tcp_write( s, buf, len ) tcpwrite( s, buf, len )
110 # define tcp_close( s ) close( s )
111 # define tcp_read( s, buf, len ) recv( s, buf, len, 0 )
112 # define tcp_write( s, buf, len ) send( s, buf, len, 0 )
115 # define tcp_close( s ) do { netclose( s ); netshut() } while(0)
116 # define tcp_read( s, buf, len ) nread( s, buf, len )
117 # define tcp_write( s, buf, len ) netwrite( s, buf, len )
120 #elif HAVE_CLOSESOCKET
121 # define tcp_close( s ) closesocket( s )
124 # define tcp_read( s, buf, len ) recv( s, buf, len, 0 )
125 # define tcp_write( s, buf, len ) send( s, buf, len, 0 )
129 # define tcp_read( s, buf, len) read( s, buf, len )
130 # define tcp_write( s, buf, len) write( s, buf, len )
133 # define tcp_close( s ) (shutdown( s, SHUT_RDWR ), close( s ))
135 # define tcp_close( s ) close( s )
140 * Only use pipe() on systems where file and socket descriptors
143 #define USE_PIPE HAVE_PIPE
152 #ifndef AC_SOCKET_INVALID
153 # define AC_SOCKET_INVALID (-1)
155 #ifndef AC_SOCKET_ERROR
156 # define AC_SOCKET_ERROR (-1)
159 #if !defined( HAVE_INET_ATON ) && !defined( inet_aton )
160 #define inet_aton ldap_pvt_inet_aton
162 LDAP_F (int) ldap_pvt_inet_aton LDAP_P(( const char *, struct in_addr * ));
165 #if defined(__WIN32) && defined(_ALPHA)
166 /* NT on Alpha is hosed. */
167 # define AC_HTONL( l ) \
168 ((((l)&0xffU)<<24) + (((l)&0xff00U)<<8) + \
169 (((l)&0xff0000U)>>8) + (((l)&0xff000000U)>>24))
170 # define AC_NTOHL(l) AC_HTONL(l)
173 # define AC_HTONL( l ) htonl( l )
174 # define AC_NTOHL( l ) ntohl( l )
177 /* htons()/ntohs() may be broken much like htonl()/ntohl() */
178 #define AC_HTONS( s ) htons( s )
179 #define AC_NTOHS( s ) ntohs( s )
182 # if !defined( AF_LOCAL ) && defined( AF_UNIX )
183 # define AF_LOCAL AF_UNIX
185 # if !defined( PF_LOCAL ) && defined( PF_UNIX )
186 # define PF_LOCAL PF_UNIX
190 #endif /* _AC_SOCKET_H_ */