[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