X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fnet%2Fstreamsocket.cpp;h=da5069cee21603110213dcfd3bf6ecc3904ae2ab;hb=136c9eec2b72bfad4788908de5552fbd62216148;hp=8a262454eca173dfcc6ef93f0fcd0d45c10582f7;hpb=50e9f9ea7f7385a2c5931fca2b8fb1103078e67c;p=libs%2Fnet.git diff --git a/source/net/streamsocket.cpp b/source/net/streamsocket.cpp index 8a26245..da5069c 100644 --- a/source/net/streamsocket.cpp +++ b/source/net/streamsocket.cpp @@ -1,4 +1,6 @@ -#ifndef WIN32 +#ifdef _WIN32 +#include +#else #include #endif #include @@ -16,7 +18,7 @@ namespace Net { 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); @@ -34,7 +36,7 @@ bool StreamSocket::connect(const SockAddr &addr) SockAddr::SysAddr sa = addr.to_sys(); int err = ::connect(priv->handle, reinterpret_cast(&sa.addr), sa.size); -#ifdef WIN32 +#ifdef _WIN32 if(err==SOCKET_ERROR) { int err_code = WSAGetLastError(); @@ -71,6 +73,9 @@ bool StreamSocket::connect(const SockAddr &addr) 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); } @@ -90,19 +95,19 @@ bool StreamSocket::poll_connect(const Time::TimeDelta &timeout) 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); @@ -119,7 +124,7 @@ void StreamSocket::on_event(IO::PollEvent ev) { 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); @@ -137,7 +142,7 @@ void StreamSocket::on_event(IO::PollEvent ev) 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);