From 64646cfbbfd3967e3200505872706d141abc91d0 Mon Sep 17 00:00:00 2001 From: olsner Date: Fri, 12 Nov 2004 22:11:04 +0000 Subject: [PATCH] Some more verbose error reporting This was SVN commit r1307. --- source/ProgrammingSchedule.xls | Bin 176640 -> 166912 bytes source/ps/Network/SocketBase.cpp | 12 +++++++++--- source/ps/Network/SocketBase.h | 2 +- source/ps/Network/StreamSocket.cpp | 5 +++++ 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/source/ProgrammingSchedule.xls b/source/ProgrammingSchedule.xls index cd2a0b399969035407956d6efaebbdd087232796..15452bae228ffdf416a5c2adf7694138c5ae5924 100755 GIT binary patch literal 166912 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 diff --git a/source/ps/Network/SocketBase.cpp b/source/ps/Network/SocketBase.cpp index 6c975c0c0a..a052077db8 100755 --- a/source/ps/Network/SocketBase.cpp +++ b/source/ps/Network/SocketBase.cpp @@ -9,6 +9,9 @@ #include "lib.h" #include "CStr.h" +// ERROR is defined by some windows header. Undef it +#undef ERROR +#include "CLogger.h" #include @@ -41,6 +44,9 @@ PS_RESULT GetPS_RESULT(int error) case ECONNREFUSED: return CONNECT_REFUSED; default: + char buf[256]; + Network_GetErrorString(error, buf, sizeof(buf)); + LOG(ERROR, LOG_CAT_NET, "SocketBase.cpp::GetPS_RESULT(): Untranslated error %s[%d]", buf, error); return PS_FAIL; } } @@ -414,7 +420,7 @@ PS_RESULT CSocketBase::Bind(const CSocketAddress &address) break; default: Network_GetErrorString(err, errBuf, sizeof(errBuf)); - printf("CServerSocket::Bind(): bind: %s [%d]\n", errBuf, err); + LOG(ERROR, LOG_CAT_NET, "CServerSocket::Bind(): bind: %s [%d] => PS_FAIL", errBuf, err); } m_State=SS_UNCONNECTED; m_Error=ret; @@ -426,7 +432,7 @@ PS_RESULT CSocketBase::Bind(const CSocketAddress &address) { int err=Network_LastError; Network_GetErrorString(err, errBuf, sizeof(errBuf)); - printf("CServerSocket::Bind(): listen: %s [%d]\n", errBuf, err); + LOG(ERROR, LOG_CAT_NET, "CServerSocket::Bind(): listen: %s [%d] => PS_FAIL", errBuf, err); m_State=SS_UNCONNECTED; return PS_FAIL; } @@ -445,7 +451,7 @@ PS_RESULT CSocketBase::PreAccept(CSocketAddress &addr) if (fd != -1) return PS_OK; else - return PS_FAIL; + return GetPS_RESULT(Network_LastError); } CSocketInternal *CSocketBase::Accept() diff --git a/source/ps/Network/SocketBase.h b/source/ps/Network/SocketBase.h index c5411f9d1c..a1ffd36639 100755 --- a/source/ps/Network/SocketBase.h +++ b/source/ps/Network/SocketBase.h @@ -342,7 +342,7 @@ public: * connection by calling Accept or Reject * * @param addr A pointer to a SocketAddress - * @return PS_OK or PS_FAIL + * @return PS_OK or an error code * * @see Accept(SocketAddress&) * @see Reject() diff --git a/source/ps/Network/StreamSocket.cpp b/source/ps/Network/StreamSocket.cpp index 1e2c93eb9c..edd861c79e 100755 --- a/source/ps/Network/StreamSocket.cpp +++ b/source/ps/Network/StreamSocket.cpp @@ -3,6 +3,8 @@ #include "Network.h" #include "StreamSocket.h" +#include + CStreamSocket::CStreamSocket() {} @@ -21,11 +23,14 @@ void *CStreamSocket_ConnectThread(void *data) CSocketAddress addr; res=CSocketAddress::Resolve(pSock->m_pConnectHost, pSock->m_ConnectPort, addr); + LOG(NORMAL, LOG_CAT_NET, "CStreamSocket_ConnectThread: Resolve: %s -> %s", res, addr.GetString().c_str()); if (res == PS_OK) { pSock->Initialize(); pSock->SetNonBlocking(false); res=pSock->Connect(addr); + if (res != PS_OK) + LOG(ERROR, LOG_CAT_NET, "CStreamSocket_ConnectThread: Connect: %s", res); } if (res == PS_OK)