summaryrefslogtreecommitdiff
path: root/lib/server/SocketStream.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/server/SocketStream.cpp')
-rwxr-xr-xlib/server/SocketStream.cpp24
1 files changed, 21 insertions, 3 deletions
diff --git a/lib/server/SocketStream.cpp b/lib/server/SocketStream.cpp
index 53865ee3..6719fcde 100755
--- a/lib/server/SocketStream.cpp
+++ b/lib/server/SocketStream.cpp
@@ -11,9 +11,12 @@
#include <unistd.h>
#include <sys/types.h>
-#include <poll.h>
#include <errno.h>
+#ifndef WIN32
+#include <poll.h>
+#endif
+
#include "SocketStream.h"
#include "ServerException.h"
#include "CommonException.h"
@@ -140,7 +143,11 @@ void SocketStream::Open(int Type, const char *Name, int Port)
if(::connect(mSocketHandle, &addr.sa_generic, addrLen) == -1)
{
// Dispose of the socket
+#ifdef WIN32
+ ::closesocket(mSocketHandle);
+#else
::close(mSocketHandle);
+#endif
mSocketHandle = -1;
THROW_EXCEPTION(ConnectionException, Conn_SocketConnectError)
}
@@ -191,7 +198,11 @@ int SocketStream::Read(void *pBuffer, int NBytes, int Timeout)
}
}
+#ifdef WIN32
+ int r = ::recv(mSocketHandle, (char*)pBuffer, NBytes, 0);
+#else
int r = ::read(mSocketHandle, pBuffer, NBytes);
+#endif
if(r == -1)
{
if(errno == EINTR)
@@ -236,7 +247,11 @@ void SocketStream::Write(const void *pBuffer, int NBytes)
while(bytesLeft > 0)
{
// Try to send.
+#ifdef WIN32
+ int sent = ::send(mSocketHandle, buffer, bytesLeft, 0);
+#else
int sent = ::write(mSocketHandle, buffer, bytesLeft);
+#endif
if(sent == -1)
{
// Error.
@@ -283,8 +298,11 @@ void SocketStream::Write(const void *pBuffer, int NBytes)
void SocketStream::Close()
{
if(mSocketHandle == -1) {THROW_EXCEPTION(ServerException, BadSocketHandle)}
-
+#ifdef WIN32
+ if(::closesocket(mSocketHandle) == -1)
+#else
if(::close(mSocketHandle) == -1)
+#endif
{
THROW_EXCEPTION(ServerException, SocketCloseError)
}
@@ -354,7 +372,7 @@ bool SocketStream::StreamClosed()
// Created: 2003/08/06
//
// --------------------------------------------------------------------------
-int SocketStream::GetSocketHandle()
+tOSSocketHandle SocketStream::GetSocketHandle()
{
if(mSocketHandle == -1) {THROW_EXCEPTION(ServerException, BadSocketHandle)}
return mSocketHandle;