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); } }