-#ifndef WIN32
+#ifdef _WIN32
+#include <winsock2.h>
+#else
#include <sys/socket.h>
#endif
#include <cerrno>
StreamSocket::StreamSocket(const Private &p, const SockAddr &paddr):
ClientSocket(p, paddr)
{
-#ifdef WIN32
+#ifdef _WIN32
WSAEventSelect(priv->handle, *priv->event, FD_READ|FD_CLOSE);
#endif
set_events(IO::P_INPUT);
SockAddr::SysAddr sa = addr.to_sys();
int err = ::connect(priv->handle, reinterpret_cast<sockaddr *>(&sa.addr), sa.size);
-#ifdef WIN32
+#ifdef _WIN32
if(err==SOCKET_ERROR)
{
int err_code = WSAGetLastError();
if(err==0)
{
connected = true;
+#ifdef _WIN32
+ WSAEventSelect(priv->handle, *priv->event, FD_READ|FD_CLOSE);
+#endif
set_events(IO::P_INPUT);
signal_connect_finished.emit(0);
}
int err;
socklen_t len = sizeof(int);
- get_option(SOL_SOCKET, SO_ERROR, &err, &len);
+ priv->get_option(SOL_SOCKET, SO_ERROR, &err, &len);
if(err!=0)
{
set_events(IO::P_NONE);
-#ifdef WIN32
+#ifdef _WIN32
throw system_error("connect", WSAGetLastError());
#else
throw system_error("connect");
#endif
}
-#ifdef WIN32
+#ifdef _WIN32
WSAEventSelect(priv->handle, *priv->event, FD_READ|FD_CLOSE);
#endif
set_events(IO::P_INPUT);
{
int err;
socklen_t len = sizeof(err);
- get_option(SOL_SOCKET, SO_ERROR, &err, &len);
+ priv->get_option(SOL_SOCKET, SO_ERROR, &err, &len);
connecting = false;
connected = (err==0);
peer_addr = 0;
}
-#ifdef WIN32
+#ifdef _WIN32
WSAEventSelect(priv->handle, *priv->event, FD_READ|FD_CLOSE);
#endif
set_events((err==0) ? IO::P_INPUT : IO::P_NONE);