Changeset 3066


Ignore:
Timestamp:
01/22/12 16:32:07 (3 years ago)
Author:
chris
Message:

Improve logging of socket errors (create, bind, accept, and poll)

Location:
box/trunk/lib/server
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • box/trunk/lib/server/SocketListen.h

    r3034 r3066  
    8888                Close(); 
    8989        } 
     90 
    9091private: 
    9192        SocketListen(const SocketListen &rToCopy) 
    9293        { 
    9394        } 
     95 
     96        int mType, mPort; 
     97        std::string mName; 
     98 
    9499public: 
    95  
    96100        enum 
    97101        { 
     
    109113#endif 
    110114                        { 
    111                                 BOX_LOG_SYS_ERROR("Failed to close network " 
    112                                         "socket"); 
     115                                BOX_LOG_SOCKET_ERROR(mType, mName, mPort, 
     116                                        "Failed to close network socket"); 
    113117                                THROW_EXCEPTION(ServerException, 
    114118                                        SocketCloseError) 
     
    128132        void Listen(Socket::Type Type, const char *Name, int Port = 0) 
    129133        { 
     134                mType = Type; 
     135                mName = Name; 
     136                mPort = Port; 
     137 
    130138                if(mSocketHandle != -1) 
    131139                { 
     
    145153                if(mSocketHandle == -1) 
    146154                { 
    147                         BOX_LOG_SYS_ERROR("Failed to create a network socket"); 
     155                        BOX_LOG_SOCKET_ERROR(Type, Name, Port, 
     156                                "Failed to create a network socket"); 
    148157                        THROW_EXCEPTION(ServerException, SocketOpenError) 
    149158                } 
     
    159168#endif 
    160169                { 
    161                         BOX_LOG_SYS_ERROR("Failed to set socket options"); 
     170                        BOX_LOG_SOCKET_ERROR(Type, Name, Port, 
     171                                "Failed to set socket options"); 
    162172                        THROW_EXCEPTION(ServerException, SocketOpenError) 
    163173                } 
     
    168178                { 
    169179                        int err_number = errno; 
     180 
     181                        BOX_LOG_SOCKET_ERROR(Type, Name, Port, 
     182                                "Failed to bind socket"); 
     183 
    170184                        // Dispose of the socket 
    171185                        ::close(mSocketHandle); 
    172186                        mSocketHandle = -1; 
     187 
    173188                        THROW_SYS_FILE_ERRNO("Failed to bind or listen " 
    174189                                "on socket", Name, err_number, 
     
    234249                                else 
    235250                                { 
    236                                         BOX_LOG_SYS_ERROR("Failed to poll " 
    237                                                 "connection"); 
     251                                        BOX_LOG_SOCKET_ERROR(mType, mName, mPort, 
     252                                                "Failed to poll connection"); 
    238253                                        THROW_EXCEPTION(ServerException, 
    239254                                                SocketPollError) 
     
    254269                if(sock == -1) 
    255270                { 
    256                         BOX_LOG_SYS_ERROR("Failed to accept connection"); 
     271                        BOX_LOG_SOCKET_ERROR(mType, mName, mPort, 
     272                                "Failed to accept connection"); 
    257273                        THROW_EXCEPTION(ServerException, SocketAcceptError) 
    258274                } 
  • box/trunk/lib/server/SocketStream.cpp

    r2451 r3066  
    155155        SocketAllAddr addr; 
    156156        int addrLen = 0; 
    157         Socket::NameLookupToSockAddr(addr, sockDomain, Type, rName, Port, addrLen); 
     157        Socket::NameLookupToSockAddr(addr, sockDomain, Type, rName, Port, 
     158                addrLen); 
    158159 
    159160        // Create the socket 
     
    162163        if(mSocketHandle == INVALID_SOCKET_VALUE) 
    163164        { 
    164                 BOX_LOG_SYS_ERROR("Failed to create a network socket"); 
     165                BOX_LOG_SOCKET_ERROR(Type, rName, Port, 
     166                        "Failed to create a network socket"); 
    165167                THROW_EXCEPTION(ServerException, SocketOpenError) 
    166168        } 
     
    170172        { 
    171173                // Dispose of the socket 
     174                BOX_LOG_SOCKET_ERROR(Type, rName, Port, 
     175                        "Failed to connect to socket"); 
    172176#ifdef WIN32 
    173                 DWORD err = WSAGetLastError(); 
    174177                ::closesocket(mSocketHandle); 
    175                 BOX_LOG_WIN_ERROR_NUMBER("Failed to connect to socket "  
    176                         "(type " << Type << ", name " << rName << 
    177                         ", port " << Port << ")", err); 
    178178#else // !WIN32 
    179                 BOX_LOG_SYS_ERROR("Failed to connect to socket (type " << 
    180                         Type << ", name " << rName << ", port " << Port << 
    181                         ")"); 
    182179                ::close(mSocketHandle); 
    183180#endif // WIN32 
Note: See TracChangeset for help on using the changeset viewer.