[Box Backup-commit] COMMIT r3066 - box/trunk/lib/server
subversion at boxbackup.org
subversion at boxbackup.org
Sun Jan 22 16:32:08 GMT 2012
Author: chris
Date: 2012-01-22 16:32:07 +0000 (Sun, 22 Jan 2012)
New Revision: 3066
Modified:
box/trunk/lib/server/SocketListen.h
box/trunk/lib/server/SocketStream.cpp
Log:
Improve logging of socket errors (create, bind, accept, and poll)
Modified: box/trunk/lib/server/SocketListen.h
===================================================================
--- box/trunk/lib/server/SocketListen.h 2012-01-22 16:28:01 UTC (rev 3065)
+++ box/trunk/lib/server/SocketListen.h 2012-01-22 16:32:07 UTC (rev 3066)
@@ -87,12 +87,16 @@
{
Close();
}
+
private:
SocketListen(const SocketListen &rToCopy)
{
}
+
+ int mType, mPort;
+ std::string mName;
+
public:
-
enum
{
MaxMultipleListenSockets = MaxMultiListenSockets
@@ -108,8 +112,8 @@
if(::close(mSocketHandle) == -1)
#endif
{
- BOX_LOG_SYS_ERROR("Failed to close network "
- "socket");
+ BOX_LOG_SOCKET_ERROR(mType, mName, mPort,
+ "Failed to close network socket");
THROW_EXCEPTION(ServerException,
SocketCloseError)
}
@@ -127,6 +131,10 @@
// ------------------------------------------------------------------
void Listen(Socket::Type Type, const char *Name, int Port = 0)
{
+ mType = Type;
+ mName = Name;
+ mPort = Port;
+
if(mSocketHandle != -1)
{
THROW_EXCEPTION(ServerException, SocketAlreadyOpen);
@@ -144,7 +152,8 @@
0 /* let OS choose protocol */);
if(mSocketHandle == -1)
{
- BOX_LOG_SYS_ERROR("Failed to create a network socket");
+ BOX_LOG_SOCKET_ERROR(Type, Name, Port,
+ "Failed to create a network socket");
THROW_EXCEPTION(ServerException, SocketOpenError)
}
@@ -158,7 +167,8 @@
&option, sizeof(option)) == -1)
#endif
{
- BOX_LOG_SYS_ERROR("Failed to set socket options");
+ BOX_LOG_SOCKET_ERROR(Type, Name, Port,
+ "Failed to set socket options");
THROW_EXCEPTION(ServerException, SocketOpenError)
}
@@ -167,9 +177,14 @@
|| ::listen(mSocketHandle, ListenBacklog) == -1)
{
int err_number = errno;
+
+ BOX_LOG_SOCKET_ERROR(Type, Name, Port,
+ "Failed to bind socket");
+
// Dispose of the socket
::close(mSocketHandle);
mSocketHandle = -1;
+
THROW_SYS_FILE_ERRNO("Failed to bind or listen "
"on socket", Name, err_number,
ServerException, SocketBindError);
@@ -233,8 +248,8 @@
}
else
{
- BOX_LOG_SYS_ERROR("Failed to poll "
- "connection");
+ BOX_LOG_SOCKET_ERROR(mType, mName, mPort,
+ "Failed to poll connection");
THROW_EXCEPTION(ServerException,
SocketPollError)
}
@@ -253,7 +268,8 @@
// Got socket (or error), unlock (implicit in destruction)
if(sock == -1)
{
- BOX_LOG_SYS_ERROR("Failed to accept connection");
+ BOX_LOG_SOCKET_ERROR(mType, mName, mPort,
+ "Failed to accept connection");
THROW_EXCEPTION(ServerException, SocketAcceptError)
}
Modified: box/trunk/lib/server/SocketStream.cpp
===================================================================
--- box/trunk/lib/server/SocketStream.cpp 2012-01-22 16:28:01 UTC (rev 3065)
+++ box/trunk/lib/server/SocketStream.cpp 2012-01-22 16:32:07 UTC (rev 3066)
@@ -154,14 +154,16 @@
int sockDomain = 0;
SocketAllAddr addr;
int addrLen = 0;
- Socket::NameLookupToSockAddr(addr, sockDomain, Type, rName, Port, addrLen);
+ Socket::NameLookupToSockAddr(addr, sockDomain, Type, rName, Port,
+ addrLen);
// Create the socket
mSocketHandle = ::socket(sockDomain, SOCK_STREAM,
0 /* let OS choose protocol */);
if(mSocketHandle == INVALID_SOCKET_VALUE)
{
- BOX_LOG_SYS_ERROR("Failed to create a network socket");
+ BOX_LOG_SOCKET_ERROR(Type, rName, Port,
+ "Failed to create a network socket");
THROW_EXCEPTION(ServerException, SocketOpenError)
}
@@ -169,16 +171,11 @@
if(::connect(mSocketHandle, &addr.sa_generic, addrLen) == -1)
{
// Dispose of the socket
+ BOX_LOG_SOCKET_ERROR(Type, rName, Port,
+ "Failed to connect to socket");
#ifdef WIN32
- DWORD err = WSAGetLastError();
::closesocket(mSocketHandle);
- BOX_LOG_WIN_ERROR_NUMBER("Failed to connect to socket "
- "(type " << Type << ", name " << rName <<
- ", port " << Port << ")", err);
#else // !WIN32
- BOX_LOG_SYS_ERROR("Failed to connect to socket (type " <<
- Type << ", name " << rName << ", port " << Port <<
- ")");
::close(mSocketHandle);
#endif // WIN32
More information about the Boxbackup-commit
mailing list