+/*
+ * sockets.h: Socket handles
+ *
+ * Author:
+ * Dick Porter (dick@ximian.com)
+ *
+ * (C) 2002 Ximian, Inc.
+ */
+
#ifndef _WAPI_SOCKETS_H_
#define _WAPI_SOCKETS_H_
#define WSADESCRIPTION_LEN 256
#define WSASYS_STATUS_LEN 128
+#ifdef __APPLE__
+typedef unsigned int socklen_t;
+#endif
+
typedef struct
{
guint16 wVersion;
guchar *lpVendorInfo;
} WapiWSAData;
-#define INVALID_SOCKET (WapiHandle *)-1
+#define INVALID_SOCKET (guint32)(~0)
#define SOCKET_ERROR -1
extern int WSAStartup(guint32 requested, WapiWSAData *data);
extern int WSACleanup(void);
extern void WSASetLastError(int error);
extern int WSAGetLastError(void);
-extern int closesocket(WapiHandle *handle);
+extern int closesocket(guint32 handle);
#ifndef _WAPI_BUILDING
#define accept _wapi_accept
#endif /* _WAPI_BUILDING */
-extern WapiHandle *_wapi_accept(WapiHandle *handle, struct sockaddr *addr, socklen_t *addrlen);
-extern int _wapi_bind(WapiHandle *handle, struct sockaddr *my_addr, socklen_t addrlen);
-extern int _wapi_connect(WapiHandle *handle, const struct sockaddr *serv_addr, socklen_t addrlen);
-extern int _wapi_getpeername(WapiHandle *handle, struct sockaddr *name, socklen_t *namelen);
-extern int _wapi_getsockname(WapiHandle *handle, struct sockaddr *name, socklen_t *namelen);
-extern int _wapi_getsockopt(WapiHandle *handle, int level, int optname, void *optval, socklen_t *optlen);
-extern int _wapi_listen(WapiHandle *handle, int backlog);
-extern int _wapi_recv(WapiHandle *handle, void *buf, size_t len, int flags);
-extern int _wapi_recvfrom(WapiHandle *handle, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen);
-extern int _wapi_send(WapiHandle *handle, const void *msg, size_t len, int flags);
-extern int _wapi_sendto(WapiHandle *handle, const void *msg, size_t len, int flags, const struct sockaddr *to, socklen_t tolen);
-extern int _wapi_setsockopt(WapiHandle *handle, int level, int optname, const void *optval, socklen_t optlen);
-extern int _wapi_shutdown(WapiHandle *handle, int how);
-extern WapiHandle *_wapi_socket(int domain, int type, int protocol);;
+extern guint32 _wapi_accept(guint32 handle, struct sockaddr *addr,
+ socklen_t *addrlen);
+extern int _wapi_bind(guint32 handle, struct sockaddr *my_addr,
+ socklen_t addrlen);
+extern int _wapi_connect(guint32 handle, const struct sockaddr *serv_addr,
+ socklen_t addrlen);
+extern int _wapi_getpeername(guint32 handle, struct sockaddr *name,
+ socklen_t *namelen);
+extern int _wapi_getsockname(guint32 handle, struct sockaddr *name,
+ socklen_t *namelen);
+extern int _wapi_getsockopt(guint32 handle, int level, int optname,
+ void *optval, socklen_t *optlen);
+extern int _wapi_listen(guint32 handle, int backlog);
+extern int _wapi_recv(guint32 handle, void *buf, size_t len, int recv_flags);
+extern int _wapi_recvfrom(guint32 handle, void *buf, size_t len,
+ int recv_flags, struct sockaddr *from,
+ socklen_t *fromlen);
+extern int _wapi_send(guint32 handle, const void *msg, size_t len,
+ int send_flags);
+extern int _wapi_sendto(guint32 handle, const void *msg, size_t len,
+ int send_flags, const struct sockaddr *to,
+ socklen_t tolen);
+extern int _wapi_setsockopt(guint32 handle, int level, int optname,
+ const void *optval, socklen_t optlen);
+extern int _wapi_shutdown(guint32 handle, int how);
+extern guint32 _wapi_socket(int domain, int type, int protocol);;
extern struct hostent *_wapi_gethostbyname(const char *hostname);
-extern int _wapi_select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
-extern void _wapi_FD_CLR(WapiHandle *handle, fd_set *set);
-extern int _wapi_FD_ISSET(WapiHandle *handle, fd_set *set);
-extern void _wapi_FD_SET(WapiHandle *handle, fd_set *set);
+extern int _wapi_select(int nfds, fd_set *readfds, fd_set *writefds,
+ fd_set *exceptfds, struct timeval *timeout);
+extern void _wapi_FD_CLR(guint32 handle, fd_set *set);
+extern int _wapi_FD_ISSET(guint32 handle, fd_set *set);
+extern void _wapi_FD_SET(guint32 handle, fd_set *set);
-extern int ioctlsocket(WapiHandle *handle, gint32 command, gpointer arg);
+extern int ioctlsocket(guint32 handle, gint32 command, gpointer arg);
#endif /* _WAPI_SOCKETS_H_ */