2 * Special header file to be included only in selected C files.
3 * We need to use the _wapi_ equivalents of the socket API when
4 * working with io-layer handles. On windows we define the wrappers to use
5 * the normal win32 functions.
9 #ifdef HAVE_SYS_SELECT_H
10 # include <sys/select.h>
12 #ifdef HAVE_SYS_TIME_H
13 # include <sys/time.h>
16 #ifndef HAVE_SOCKLEN_T
21 #define _wapi_accept accept
22 #define _wapi_bind bind
23 #define _wapi_connect connect
24 #define _wapi_getpeername getpeername
25 #define _wapi_getsockname getsockname
26 #define _wapi_getsockopt getsockopt
27 #define _wapi_listen listen
28 #define _wapi_recv recv
29 #define _wapi_recvfrom recvfrom
30 #define _wapi_send send
31 #define _wapi_sendto sendto
32 #define _wapi_setsockopt setsockopt
33 #define _wapi_shutdown shutdown
34 #define _wapi_socket WSASocket
35 #define _wapi_gethostbyname gethostbyname
36 #define _wapi_select select
38 /* No need to wrap FD_ZERO because it doesnt involve file
41 #define _wapi_FD_CLR FD_CLR
42 #define _wapi_FD_ISSET FD_ISSET
43 #define _wapi_FD_SET FD_SET
47 #define WSA_FLAG_OVERLAPPED 0x01
49 extern guint32 _wapi_accept(guint32 handle, struct sockaddr *addr,
51 extern int _wapi_bind(guint32 handle, struct sockaddr *my_addr,
53 extern int _wapi_connect(guint32 handle, const struct sockaddr *serv_addr,
55 extern int _wapi_getpeername(guint32 handle, struct sockaddr *name,
57 extern int _wapi_getsockname(guint32 handle, struct sockaddr *name,
59 extern int _wapi_getsockopt(guint32 handle, int level, int optname,
60 void *optval, socklen_t *optlen);
61 extern int _wapi_listen(guint32 handle, int backlog);
62 extern int _wapi_recv(guint32 handle, void *buf, size_t len, int recv_flags);
63 extern int _wapi_recvfrom(guint32 handle, void *buf, size_t len,
64 int recv_flags, struct sockaddr *from,
66 extern int _wapi_send(guint32 handle, const void *msg, size_t len,
68 extern int _wapi_sendto(guint32 handle, const void *msg, size_t len,
69 int send_flags, const struct sockaddr *to,
71 extern int _wapi_setsockopt(guint32 handle, int level, int optname,
72 const void *optval, socklen_t optlen);
73 extern int _wapi_shutdown(guint32 handle, int how);
74 extern guint32 _wapi_socket(int domain, int type, int protocol, void *unused,
75 guint32 unused2, guint32 flags);
76 extern struct hostent *_wapi_gethostbyname(const char *hostname);
77 extern int _wapi_select(int nfds, fd_set *readfds, fd_set *writefds,
78 fd_set *exceptfds, struct timeval *timeout);
80 extern void _wapi_FD_CLR(guint32 handle, fd_set *set);
81 extern int _wapi_FD_ISSET(guint32 handle, fd_set *set);
82 extern void _wapi_FD_SET(guint32 handle, fd_set *set);
84 #endif /* PLATFORM_WIN32 */