Update of /cvsroot/netrek/client/netrekxp/src
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv31010/src
Modified Files:
socket.c
Log Message:
Add new server BADVERSION codes. Patch by Quozl.
Index: socket.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/socket.c,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -d -r1.46 -r1.47
--- socket.c 16 Jun 2008 00:05:47 -0000 1.46
+++ socket.c 21 Jun 2008 13:31:41 -0000 1.47
@@ -2316,25 +2316,51 @@
return;
nextSocket = newsocket;
}
+
+static void
+handleBadVersionSorry (char *reason)
+{
+ MessageBox(NULL, reason, "Try again later", MB_OK);
+ LineToConsole ("%s\n", reason);
+ LineToConsole ("Sorry, but you cannot play netrek now.\n");
+ LineToConsole ("Try again later.\n");
+}
+
+#define BADVERSION_SOCKET 0 /* CP_SOCKET version does not match, exiting */
+#define BADVERSION_DENIED 1 /* access denied by netrekd */
+#define BADVERSION_NOSLOT 2 /* no slot on queue */
+#define BADVERSION_BANNED 3 /* banned */
+#define BADVERSION_DOWN 4 /* game shutdown by server */
+#define BADVERSION_SILENCE 5 /* daemon stalled */
+#define BADVERSION_SELECT 6 /* internal error */
+
void
handleBadVersion (struct badversion_spacket *packet)
{
switch (packet->why)
{
- case 0:
+ case BADVERSION_SOCKET:
LineToConsole ("Sorry, this is an invalid client version.\n");
LineToConsole ("You need a new version of the client code.\n");
break;
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- MessageBox(NULL, "Sorry, but you cannot play netrek now.", "Try again later", MB_OK);
- LineToConsole ("Sorry, but you cannot play netrek now.\n");
- LineToConsole ("Try again later.\n");
+ case BADVERSION_DENIED:
+ handleBadVersionSorry("Access denied by server.");
+ break;
+ case BADVERSION_NOSLOT:
+ handleBadVersionSorry("No free slots on server queue.");
+ break;
+ case BADVERSION_BANNED:
+ handleBadVersionSorry("Banned from server.");
+ break;
+ case BADVERSION_DOWN:
+ handleBadVersionSorry("Game shutdown by server.");
+ break;
+ case BADVERSION_SILENCE:
+ handleBadVersionSorry("Server daemon stalled, internal error.");
+ break;
+ case BADVERSION_SELECT:
+ handleBadVersionSorry("Server reports internal error.");
break;
default:
LineToConsole ("Unknown message from handleBadVersion.\n");