Vanilla Development Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

CVS update: metaserver



Date:	Thursday April 8, 1999 @ 18:09
Author:	unbelver

Update of /home/netrek/cvsroot/metaserver
In directory cvs.castle.real-time.com:/var/tmp/cvs-serv5015

Modified Files:
	Makefile scan.c 
Log Message:
Minor mod.  Current version of solicit packet ('a') does not send RSA
status or an explicit queue flag.  New version of solicit packet ('b')
that has both those flags is made ready for receipt.  Next step after
adoption of this metaserver is to update the server.  Clients may need
updating after that.

--Carlos V.




****************************************

Index: metaserver/Makefile
diff -u metaserver/Makefile:2.1 metaserver/Makefile:2.2
--- metaserver/Makefile:2.1	Wed Mar 24 00:20:48 1999
+++ metaserver/Makefile	Thu Apr  8 18:09:28 1999
@@ -12,7 +12,7 @@
 #CFLAGS	= -O -s -DDEBUG
 #CFLAGS	= -O -s
 #CFLAGS	= -O -s -DSYSV
-CFLAGS	= -g -DSYSV -s
+CFLAGS	= -g -DSYSV 
 #CFLAGS	= -g -DDEBUG
 #CFLAGS	= -g -p -DPROF
 LIBS	= 
Index: metaserver/scan.c
diff -u metaserver/scan.c:2.3 metaserver/scan.c:2.4
--- metaserver/scan.c:2.3	Thu Mar 25 01:14:10 1999
+++ metaserver/scan.c	Thu Apr  8 18:09:28 1999
@@ -4,7 +4,7 @@
  * MetaServerII
  * Copyright (c) 1993 by Andy McFadden
  * 
- * $Id: scan.c,v 2.3 1999/03/25 07:14:10 unbelver Exp $
+ * $Id: scan.c,v 2.4 1999/04/08 23:09:28 unbelver Exp $
  * 
  */
 #include <stdio.h>
@@ -891,7 +891,7 @@
   struct hostent *hp;
   struct sockaddr_in from;
   unsigned int fromlen = sizeof(from);
-  int bytes;
+  int bytes, version, qsize;
   SERVER *sp, srvbuf;
   char *p;
   int i;
@@ -937,13 +937,15 @@
  
   /* check for netrek server requests ... version field first */
 
-  if (p[0] != 'a') {
+  if ( (p[0] != 'a') && (p[0] != 'b') ) {
     log_msg("uread: bad version %02.2x from %s\n", p[0],
 	    /* inet_ntoa(srvbuf.addr)); */
 	    inet_ntoa(from.sin_addr));
     return;
   }
 
+  version = p[0] - 'a';    /* version of packet coming in, 'a' being 0 */
+  
   /* address (DNS, as stated by server within packet) */
   p = strtok(NULL, "\n");
   if (p == NULL) goto truncated;
@@ -976,10 +978,14 @@
   /* number of free slots */
   p = strtok(NULL, "\n");
   if (p == NULL) goto truncated;
-  if (atoi(p) > 0) srvbuf.max_players = srvbuf.player_count + atoi(p);
-  srvbuf.queue_size = -atoi(p);
-  if (srvbuf.queue_size < 0) srvbuf.queue_size = 0;
-  if (srvbuf.queue_size > 0) srvbuf.status = SS_QUEUE;
+  qsize = atoi(p);
+  if (qsize > 0) 
+     srvbuf.max_players = srvbuf.player_count + qsize;
+  srvbuf.queue_size = 0 - qsize;
+  if (srvbuf.queue_size < 0) 
+     srvbuf.queue_size = 0;
+  if (srvbuf.queue_size > 0) 
+     srvbuf.status = SS_QUEUE;
 
   /* t-mode */
   p = strtok(NULL, "\n");
@@ -988,6 +994,22 @@
   if (p[0] == 'y') {
     srvbuf.display_flags |= DF_HAD_TMODE;
   }
+  
+  /* Below Not contained in version 0 (a) */
+  if (version) 
+   {
+     /* RSA server */
+     p = strtok(NULL, "\n");
+     if (p == NULL) goto truncated;
+     if(p[0] == 'y')
+       srvbuf.display_flags |= DF_RSA;
+
+     /* Queue existence. Mainly for the case when queue == 0 */
+     p = strtok(NULL, "\n");
+     if (p == NULL) goto truncated;
+     if(p[0] == 'y')
+       srvbuf.status = SS_QUEUE;
+   }
 
   /* comment */
   p = strtok(NULL, "\n");