From bc628082bae751b6d40569f42e9d2d8d06d3dc8e Mon Sep 17 00:00:00 2001 From: Charles Lohr Date: Mon, 6 Sep 2004 18:20:16 +0000 Subject: [PATCH] Added some code to help figure out errors. --- stepmania/src/NetworkSyncServer.cpp | 7 +++++++ stepmania/src/NetworkSyncServer.h | 2 ++ stepmania/src/ScreenNetworkOptions.cpp | 2 +- stepmania/src/ezsockets.cpp | 10 +++++++--- stepmania/src/ezsockets.h | 2 ++ 5 files changed, 19 insertions(+), 4 deletions(-) diff --git a/stepmania/src/NetworkSyncServer.cpp b/stepmania/src/NetworkSyncServer.cpp index 31f216950d..ab17993ff3 100644 --- a/stepmania/src/NetworkSyncServer.cpp +++ b/stepmania/src/NetworkSyncServer.cpp @@ -36,7 +36,14 @@ bool StepManiaLanServer::ServerStart() { statsTime = time(NULL); return true; } + else + lastError = "Failed to make socket listen."; + else + lastError = "Failed to bind socket"; + else + lastError = "Failed to create socket"; + lastErrorCode = server.lastCode; //Hopefully we will not get here. If we did, something went wrong above. return false; } diff --git a/stepmania/src/NetworkSyncServer.h b/stepmania/src/NetworkSyncServer.h index 3f006299f0..552adabd29 100644 --- a/stepmania/src/NetworkSyncServer.h +++ b/stepmania/src/NetworkSyncServer.h @@ -81,6 +81,8 @@ class StepManiaLanServer { StepManiaLanServer(); ~StepManiaLanServer(); CString servername; + CString lastError; + int lastErrorCode; private: bool stop; PacketFunctions Packet; diff --git a/stepmania/src/ScreenNetworkOptions.cpp b/stepmania/src/ScreenNetworkOptions.cpp index 9a13851d61..2a0471116d 100644 --- a/stepmania/src/ScreenNetworkOptions.cpp +++ b/stepmania/src/ScreenNetworkOptions.cpp @@ -91,7 +91,7 @@ void ScreenNetworkOptions::HandleScreenMessage( const ScreenMessage SM ) SCREENMAN->SystemMessage( "Server Started." ); } else - SCREENMAN->SystemMessage( "Server FAILED to start." ); + SCREENMAN->SystemMessage( "Server failed: " + NSMAN->LANserver->lastError + ssprintf(" Code:%d",NSMAN->LANserver->lastErrorCode) ); } } diff --git a/stepmania/src/ezsockets.cpp b/stepmania/src/ezsockets.cpp index 0abed5953f..a57108b4d7 100644 --- a/stepmania/src/ezsockets.cpp +++ b/stepmania/src/ezsockets.cpp @@ -81,6 +81,7 @@ bool EzSockets::create(int Protocol, int Type) { state = skDISCONNECTED; sock = socket(AF_INET, Type, Protocol); + lastCode = sock; return sock > 0; } @@ -93,13 +94,14 @@ bool EzSockets::bind(unsigned short port) addr.sin_family = AF_INET; addr.sin_addr.s_addr = htonl(INADDR_ANY); addr.sin_port = htons(port); - - return !::bind(sock,(struct sockaddr*)&addr, sizeof(addr)); + lastCode = ::bind(sock,(struct sockaddr*)&addr, sizeof(addr)); + return !lastCode; } bool EzSockets::listen() { - if (::listen(sock, MAXCON)) + lastCode = ::listen(sock, MAXCON); + if (lastCode) return false; state = skLISTENING; @@ -120,6 +122,8 @@ bool EzSockets::accept(EzSockets& socket) socket.sock = ::accept(sock,(struct sockaddr*) &socket.addr, (socklen_t*) &length); + lastCode = socket.sock; + if (socket.sock <= 0) return false; diff --git a/stepmania/src/ezsockets.h b/stepmania/src/ezsockets.h index bb1979399a..d01441f272 100644 --- a/stepmania/src/ezsockets.h +++ b/stepmania/src/ezsockets.h @@ -119,6 +119,8 @@ public: SockState state; + int lastCode; //Used for debugging purposes + private: //Only necessiary in windows, xbox