#ifndef MSP_NET_SOCKET_PRIVATE_H_
#define MSP_NET_SOCKET_PRIVATE_H_
+#ifndef MSP_NET_PLATFORM_API_H_
+#error platform_api.h must be included to use private headers
+#endif
+
#include <msp/io/handle.h>
+#include "sockaddr.h"
#include "socket.h"
+#include "socket_platform.h"
namespace Msp {
namespace Net {
-#ifdef _WIN32
-typedef int socklen_t;
-#endif
-
struct Socket::Private
{
-#ifdef _WIN32
- SOCKET handle;
-#else
- int handle;
-#endif
+ SocketHandle handle;
/* On POSIX platforms this is the same as the handle. This might seem
strange but it allows the same syntax on both POSIX and Windows. */
IO::Handle event;
+ void set_block(bool);
int set_option(int, int, const void *, socklen_t);
int get_option(int, int, void *, socklen_t *);
};
+unsigned check_sys_error(int, const char *);
+bool check_sys_connect_error(int);
+
} // namespace Net
} // namespace Msp