tImproved error reporting for failure of WinSock init - vaccinewars - be a doctor and try to vaccinate the world
 (HTM) git clone git://src.adamsgaard.dk/vaccinewars
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit ec4529cf865fafa618e04da4a5cc3214e2667cd5
 (DIR) parent e09602092f65e25b110ec584dff468c0dc995a8a
 (HTM) Author: Ben Webb <ben@salilab.org>
       Date:   Mon, 15 Oct 2001 15:57:46 +0000
       
       Improved error reporting for failure of WinSock init
       
       
       Diffstat:
         M src/error.c                         |       2 ++
         M src/network.c                       |      11 ++++++++++-
       
       2 files changed, 12 insertions(+), 1 deletion(-)
       ---
 (DIR) diff --git a/src/error.c b/src/error.c
       t@@ -100,6 +100,8 @@ ErrorType *ET_ERRNO = &ETErrno;
        static ErrTable WSAErrStr[] = {
        /* These are the explanations of the various Windows Sockets error codes */
          { WSANOTINITIALISED,N_("WinSock has not been properly initialised") },
       +  { WSASYSNOTREADY,N_("Network subsystem is not ready") },
       +  { WSAVERNOTSUPPORTED,N_("WinSock version not supported") },
          { WSAENETDOWN,N_("The network subsystem has failed") },
          { WSAEADDRINUSE,N_("Address already in use") },
          { WSAENETDOWN,N_("Cannot reach the network") },
 (DIR) diff --git a/src/network.c b/src/network.c
       t@@ -74,8 +74,17 @@ static gchar *ExpandWriteBuffer(ConnBuf *conn,int numbytes);
        
        void StartNetworking() {
          WSADATA wsaData;
       +  LastError *error;
       +  GString *errstr;
       +
          if (WSAStartup(MAKEWORD(1,0),&wsaData)!=0) {
       -    g_warning(_("Cannot initialise WinSock!"));
       +    error = NewError(ET_WINSOCK,WSAGetLastError(),NULL);
       +    errstr = g_string_new("");
       +    g_string_assign_error(errstr,error);
       +    g_log(NULL,G_LOG_LEVEL_CRITICAL,_("Cannot initialise WinSock (%s)!"),
       +          errstr->str);
       +    g_string_free(errstr,TRUE);
       +    FreeError(error);
            exit(1);
          }
        }