Changeset 3066


Ignore:
Timestamp:
Jan 22, 2012, 4:32:07 PM (4 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.