Update of /cvsroot/netrek/server/Vanilla/ntserv
In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv26631/ntserv

Modified Files:
	commands.c daemonII.c data.c main.c ntscmds.c openmem.c 
	redraw.c smessage.c 
Log Message:
merge from jerub darcs 2006-05-12

Index: redraw.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/ntserv/redraw.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- redraw.c	14 Apr 2006 10:19:17 -0000	1.3
+++ redraw.c	12 May 2006 03:44:48 -0000	1.4
@@ -210,7 +210,7 @@
 	  me->p_wtemp = pl->p_wtemp;
 	  me->p_etemp = pl->p_etemp;
 	  /* These flags shouldn't be propagated to observers */
-#define NOOBSMASK	(PFSELFDEST|PFPLOCK|PFPLLOCK|PFOBSERV)
+#define NOOBSMASK (PFWAR|PFREFITTING|PFSELFDEST|PFPLOCK|PFPLLOCK|PFOBSERV)
 	  me->p_flags = (pl->p_flags & ~NOOBSMASK) | (me->p_flags & NOOBSMASK);
 	  
 	  me->p_dir = pl->p_dir;

Index: ntscmds.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/ntserv/ntscmds.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- ntscmds.c	6 May 2006 13:12:56 -0000	1.11
+++ ntscmds.c	12 May 2006 03:44:48 -0000	1.12
@@ -226,7 +226,7 @@
     { NULL }
 };
 
-int check_command(struct message *mess)
+int do_check_command(struct message *mess)
 {
   return check_2_command(mess, nts_commands,
 			 (status->gameup & GU_INROBOT) ? 0 : C_PR_INPICKUP);

Index: smessage.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/ntserv/smessage.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- smessage.c	21 Mar 2005 05:23:44 -0000	1.1
+++ smessage.c	12 May 2006 03:44:48 -0000	1.2
@@ -66,6 +66,13 @@
 
 }
 
+static int (*do_message_post)(struct message *message) = NULL;
+
+void do_message_post_set(int (*proposed)(struct message *message))
+{
+  do_message_post = proposed;
+}
+
 void do_message(int recip, int group, char *address, u_char from,
                 const char *fmt, va_list args) {
 
@@ -108,7 +115,10 @@
   message_flag(cur,address);
   cur->m_flags |= MVALID;
 
-  if ((cur->m_flags & MINDIV) && (cur->m_recpt == me->p_no) &&
-      (cur->m_from == me->p_no))
-    check_command(cur);
+  if (do_message_post != NULL) {
+    if ((cur->m_flags & MINDIV) && (cur->m_recpt == me->p_no) &&
+	(cur->m_from == me->p_no)) {
+      (*do_message_post)(cur);
+    }
+  }
 }

Index: openmem.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/ntserv/openmem.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- openmem.c	6 May 2006 14:02:37 -0000	1.4
+++ openmem.c	12 May 2006 03:44:48 -0000	1.5
@@ -70,6 +70,7 @@
 {
     players = sharedMemory->players;
     torps = sharedMemory->torps;
+    context = sharedMemory->context;
     status = sharedMemory->status;
     planets = sharedMemory->planets;
     phasers = sharedMemory->phasers;

Index: data.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/ntserv/data.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- data.c	6 May 2006 12:06:39 -0000	1.7
+++ data.c	12 May 2006 03:44:48 -0000	1.8
@@ -9,6 +9,7 @@
 struct player *players;
 struct player *me;
 struct torp *torps;
+struct context *context;
 struct status *status;
 struct ship *myship;
 struct stats *mystats;

Index: commands.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/ntserv/commands.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- commands.c	6 May 2006 12:05:57 -0000	1.6
+++ commands.c	12 May 2006 03:44:48 -0000	1.7
@@ -507,8 +507,7 @@
     return what;
 }
 
-check_listing(comm)
-char *comm;
+int check_listing(char *comm)
 {
     register int i;
 
@@ -675,9 +674,7 @@
 
 
 /* ARGSUSED */
-int do_help(comm,mess)
-char *comm;
-struct message *mess;
+int do_help(char *comm, struct message *mess)
 {
     int who;
     int i;
@@ -748,63 +745,52 @@
 		votes[i].type, ch, votes[i].desc);
 	}
     }
-    return;
+    return 0;
 }
 
 #ifndef INL
 
 /*** QUERIES ***/
-send_query(which,who,from)
-char which;
-int  who, from;
+int send_query(char which, int who, int from)
 {
 	pmessage2(who, MINDIV, " ", from, "%c", which);
+	return 0;
 }
 
 /* ARGSUSED */
-do_client_query(comm,mess,who)
-char *comm;
-struct message *mess;
-int who;
+int do_client_query(char *comm, struct message *mess, int who)
 {
 #ifdef RSA
 	send_query('#', who, mess->m_from); 
 #endif
+	return 0;
 }
 
 /* ARGSUSED */
-do_ping_query(comm,mess,who)
-char *comm;
-struct message *mess;
-int who;
+int do_ping_query(char *comm, struct message *mess, int who)
 {
-      send_query('!', who, mess->m_from);
+	send_query('!', who, mess->m_from);
+	return 0;
 }
 
 /* ARGSUSED */
-do_stats_query(comm,mess,who)
-char *comm;
-struct message *mess;
-int who;
+int do_stats_query(char *comm, struct message *mess, int who)
 {
-      send_query('?', who, mess->m_from); 
+	send_query('?', who, mess->m_from); 
+	return 0;
 }
 
 /* ARGSUSED */
-do_whois_query(comm,mess,who)
-char *comm;
-struct message *mess;
-int who;
+int do_whois_query(char *comm, struct message *mess, int who)
 {
-      send_query('@', who, mess->m_from);
+	send_query('@', who, mess->m_from);
+	return 0;
 }
 
 #ifdef RSA
-int bounceRSAClientType(from)
-int from;
+int bounceRSAClientType(int from)
 {
         bounce(from,"Client: %s", RSA_client_type);
-
         return 1;
 }
 #endif
@@ -869,9 +855,7 @@
     return 1;
 }
 
-int
-bounceSBStats(from)
-    int from;
+int bounceSBStats(int from)
 {
     float                       sessionRatio, sessionKPH, sessionDPH,
                                 overallKPH, overallDPH, overallRatio;
@@ -961,8 +945,7 @@
 
 
 #ifdef PING
-int bouncePingStats(from)
-int from;
+int bouncePingStats(int from)
 {
     if(me->p_avrt == -1){
         /* client doesn't support it or server not pinging */
@@ -986,34 +969,28 @@
 #if !defined (DOG) && !defined (PUCK) 		/* Server only */
 
 /* ARGSUSED */
-do_sbstats_query(comm,mess,who)
-char *comm;
-struct message *mess;
-int who;
+int do_sbstats_query(char *comm, struct message *mess, int who)
 {
-      send_query('^', who, mess->m_from);	
+	send_query('^', who, mess->m_from);
+	return 0;
 }
 
 #ifdef GENO_COUNT
-do_genos_query(comm,mess,who)
-char *comm;
-struct message *mess;
-int who;
+int do_genos_query(char *comm, struct message *mess, int who)
 {
   char *addr;
 
   addr = addr_mess(mess->m_from,MINDIV);
   pmessage(mess->m_from, MINDIV, addr, "%s has won the game %d times.",
 	players[who].p_name,players[who].p_stats.st_genos);
+  return 0;
 }
 #endif
 
 
 /* ARGSUSED */
 #if !defined (BASEP) || !defined(BASEPRACTICE)
-do_time_msg(comm,mess)
-char *comm;
-struct message *mess;
+int do_time_msg(char *comm, struct message *mess)
 {
   int who;
   int t;
@@ -1029,6 +1006,7 @@
   } else {
     pmessage(who, MINDIV, addr, "The %s have %d minutes left before they surrender.", team_name(t), teams[t].s_surrender);
   }
+  return 0;
 }
 
 /*
@@ -1036,9 +1014,7 @@
  */
 
 /* ARGSUSED */
-do_queue_msg(comm,mess)
-char *comm;
-struct message *mess;
+int do_queue_msg(char *comm, struct message *mess)
 {
     int who;
     char *addr;
@@ -1059,6 +1035,7 @@
 	    pmessage(who, MINDIV, addr, "There is no one on the %s queue.",
 		     queues[i].q_name);
     }
+    return 0;
 }
 
 #endif

Index: main.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/ntserv/main.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- main.c	6 May 2006 12:06:39 -0000	1.9
+++ main.c	12 May 2006 03:44:48 -0000	1.10
@@ -123,6 +123,7 @@
 
     /* this finds the shared memory information */
     openmem(1);
+    do_message_post_set(do_check_command);
     readsysdefaults();
 
 #ifdef FEATURE_PACKETS

Index: daemonII.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/ntserv/daemonII.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- daemonII.c	6 May 2006 12:06:39 -0000	1.13
+++ daemonII.c	12 May 2006 03:44:48 -0000	1.14
@@ -228,6 +228,7 @@
         status->kills=10;
         status->losses=10;
     }
+    context->daemon = getpid();
 
 #undef wait
 
@@ -4488,14 +4489,6 @@
     }
 }
 
-/* dummy check_command to fool do_message() */
-
-int check_command(struct message *mess) {
-  /* get rid of annoying compiler warning */
-  if (mess) ;
-  return 1;
-}
-
 void message_flag(struct message *cur, char *address)
 {
             if(arg[0] != DINVALID){