Update of /cvsroot/netrek/server/Vanilla/ntserv
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6880/ntserv
Modified Files:
commands.c daemonII.c feature.c findslot.c openmem.c rsa_key.c
socket.c wander2.c
Log Message:
Index: rsa_key.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/ntserv/rsa_key.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- rsa_key.c 21 Mar 2005 05:23:44 -0000 1.1
+++ rsa_key.c 22 Apr 2006 02:16:46 -0000 1.2
@@ -7,6 +7,7 @@
*/
#include "copyright2.h"
#include <stdio.h>
+#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
@@ -41,20 +42,21 @@
{
struct rsa_key key;
struct sockaddr_in saddr;
+ socklen_t addrlen;
u_char temp[KEY_SIZE], *data;
#ifdef SHOW_RSA
char format[MSG_LEN];
#endif
int fd;
FILE *logfile;
- int done, found, curtime, len;
+ int done, found, curtime;
int foo;
int total;
/* SIGNAL(SIGALRM, SIG_IGN);*/
- len = sizeof(saddr);
- if (getsockname(sock, &saddr, &len) < 0) {
+ addrlen = sizeof(saddr);
+ if (getsockname(sock, (struct sockaddr *) &saddr, &addrlen) < 0) {
perror("getsockname(sock)");
exit(1);
}
Index: findslot.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/ntserv/findslot.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- findslot.c 27 Sep 2005 12:26:37 -0000 1.3
+++ findslot.c 22 Apr 2006 02:16:46 -0000 1.4
@@ -9,6 +9,7 @@
#include <stdio.h>
#include <sys/types.h>
+#include <stdlib.h>
#include <unistd.h>
#include "defs.h"
#include "struct.h"
Index: openmem.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/ntserv/openmem.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- openmem.c 21 Mar 2005 05:23:44 -0000 1.1
+++ openmem.c 22 Apr 2006 02:16:46 -0000 1.2
@@ -6,6 +6,7 @@
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
+#include <stdlib.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <errno.h>
@@ -117,7 +118,7 @@
if (sharedMemory == (struct memory *) -1) {
printf("Error number: %d\n",errno);
perror("shared memory");
- exit (1);
+ exit(1);
}
setup_memory(sharedMemory);
Index: commands.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/ntserv/commands.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- commands.c 21 Mar 2005 05:23:43 -0000 1.1
+++ commands.c 22 Apr 2006 02:16:46 -0000 1.2
@@ -15,6 +15,7 @@
#include <time.h>
#include <signal.h>
#include <stdlib.h>
+#include <unistd.h>
#include "defs.h"
#include "struct.h"
#include "data.h"
Index: feature.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/ntserv/feature.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- feature.c 21 Mar 2005 05:23:43 -0000 1.1
+++ feature.c 22 Apr 2006 02:16:46 -0000 1.2
@@ -67,6 +67,11 @@
static int num_features;
static struct feature_spacket *features;
+static void freeFeatures(void)
+{
+ free(features);
+}
+
/*
* Called once to read in feature strings
*/
@@ -97,6 +102,7 @@
num_features = 0;
return;
}
+ atexit(freeFeatures);
f = fopen(Feature_File, "r");
i=0;
Index: daemonII.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/ntserv/daemonII.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- daemonII.c 15 Apr 2006 12:10:57 -0000 1.7
+++ daemonII.c 22 Apr 2006 02:16:46 -0000 1.8
@@ -67,7 +67,7 @@
/* file scope prototypes */
static void check_load(void);
static int tournamentMode(void);
-static int check_scummers(void);
+static int check_scummers(int);
static void move(int ignored);
static void udplayersight(void);
static void udplayers(void);
@@ -394,7 +394,7 @@
Nick Trown 12/19/92
*/
-static int check_scummers(void)
+static int check_scummers(int verbose)
{
int i, j;
int num;
@@ -443,7 +443,8 @@
}
}
}
- if (num>1){
+ if (num>(check_scum-1)){
+ if (!verbose) return 1;
pmessage(0,MALL,"GOD->ALL", "*****************************************");
pmessage(0,MALL,"GOD->ALL","Possible t-mode scummers have been found.");
pmessage(0,MALL,"GOD->ALL","They have been noted for god to review.");
@@ -553,6 +554,13 @@
static int oldtourn=0;
static int oldmessage;
int old_robot;
+ static enum ts {
+ TS_PICKUP,
+ TS_SCUMMERS,
+ TS_BEGIN,
+ TS_TOURNAMENT,
+ TS_END
+ } ts = TS_PICKUP;
/* Don't tell us it's time for another move in the middle of a move. */
(void) SIGNAL(SIGALRM, SIG_IGN);
@@ -618,24 +626,49 @@
pmessage(0, MALL, "GOD->ALL","Loading new server configuration.");
}
- if (tournamentMode()) {
- if (!oldtourn) {
- if (check_scum)
- check_scummers(); /* NBT */
- oldmessage=(random() % 8);
+ switch (ts) {
+ case TS_PICKUP:
+ status->tourn = 0;
+ if (tournamentMode()) {
+ ts = TS_BEGIN;
+ if (check_scum && check_scummers(1))
+ ts = TS_SCUMMERS;
+ }
+ break;
+
+ case TS_SCUMMERS:
+ status->tourn = 0;
+ if (!tournamentMode()) {
+ ts = TS_PICKUP;
+ } else {
+ if (!check_scum) {
+ ts = TS_BEGIN;
+ break;
+ }
+ if (!check_scummers(0))
+ ts = TS_BEGIN;
+ }
+ break;
+
+ case TS_BEGIN:
+ oldmessage = (random() % 8);
political_begin(oldmessage);
- }
- oldtourn=1;
- status->tourn=1;
- status->time++;
- tourntimestamp = ticks;
- } else {
- if (oldtourn) {
+ ts = TS_TOURNAMENT;
+ /* break; */
+
+ case TS_TOURNAMENT:
+ status->tourn = 1;
+ status->time++;
+ tourntimestamp = ticks;
+ if (tournamentMode()) break;
+ ts = TS_END;
+ /* break; */
+
+ case TS_END:
tourntimestamp = ticks; /* record end of Tmode 8/2/91 TC */
- political_end(oldmessage);
- }
- oldtourn=0;
- status->tourn=0;
+ political_end(oldmessage);
+ ts = TS_PICKUP;
+ break;
}
#ifdef PUCK_FIRST
Index: socket.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/ntserv/socket.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- socket.c 10 Apr 2006 10:56:33 -0000 1.5
+++ socket.c 22 Apr 2006 02:16:46 -0000 1.6
@@ -13,6 +13,7 @@
*/
#include "copyright2.h"
#include <stdio.h>
+#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/time.h>
@@ -364,7 +365,8 @@
int connectToClient(char *machine, int port)
{
- int ns, stat, derrno, derrnol;
+ int ns, stat, derrno;
+ socklen_t derrnol;
struct sockaddr_in addr;
struct hostent *hp;
struct timeval timeout;
@@ -488,7 +490,7 @@
void checkSocket(void)
{
struct sockaddr_in sin;
- int len = sizeof(sin);
+ socklen_t len = sizeof(sin);
if (getpeername(sock, (struct sockaddr *) &sin, &len) < 0) {
return;
}
@@ -961,7 +963,7 @@
int temp;
#ifdef UDP_PORTSWAP
struct sockaddr_in moo;
- int s;
+ socklen_t moolen;
#endif
#ifdef PING /* need the socket in the ping handler routine */
@@ -978,10 +980,10 @@
*/
if (portswapflags == (PORTSWAP_UDPRECEIVED | PORTSWAP_ENABLED)) {
- s = sizeof(moo);
+ moolen = sizeof(moo);
UDPDIAG(("portswap hack entered\n"));
if (0 > recvfrom(asock, buf, BUFSIZ*2, MSG_PEEK,
- (struct sockaddr *)&moo, &s)) {
+ (struct sockaddr *)&moo, &moolen)) {
ERROR(1,("%s: portswap recvfrom() failed, %s\n",
whoami(), strerror(errno)));
}
@@ -2255,7 +2257,7 @@
static int connUdpConn(void)
{
struct sockaddr_in addr;
- int len;
+ socklen_t addrlen;
if (udpSock > 0) {
ERROR(2,( "ntserv: tried to open udpSock twice\n"));
@@ -2273,8 +2275,8 @@
#ifdef UDP_FIX /* 15/6/93 SK UDP connection time out fix */
/* Bind to interface used by the TCP socket 10/13/99 TAP */
- len = sizeof(addr);
- if (getsockname(sock, (struct sockaddr *)&addr, &len) < 0) {
+ addrlen = sizeof(addr);
+ if (getsockname(sock, (struct sockaddr *)&addr, &addrlen) < 0) {
perror("netrek: unable to getsockname(TCP)");
UDPDIAG(("Can't get our own socket; using default interface\n"));
addr.sin_family = AF_INET;
@@ -2292,8 +2294,8 @@
}
/* determine what our port is */
- len = sizeof(addr);
- if (getsockname(udpSock, (struct sockaddr *)&addr, &len) < 0) {
+ addrlen = sizeof(addr);
+ if (getsockname(udpSock, (struct sockaddr *)&addr, &addrlen) < 0) {
perror("netrek: unable to getsockname(UDP)");
UDPDIAG(("Can't get our own socket; connection failed\n"));
close(udpSock);
@@ -2345,8 +2347,8 @@
me->p_name, udpClientPort, remoteaddr));
/* determine what our port is */
- len = sizeof(addr);
- if (getsockname(udpSock, (struct sockaddr *) &addr, &len) < 0) {
+ addrlen = sizeof(addr);
+ if (getsockname(udpSock, (struct sockaddr *) &addr, &addrlen) < 0) {
perror("netrek: unable to getsockname(UDP)");
UDPDIAG(("Can't get our own socket; connection failed\n"));
close(udpSock);
@@ -2384,17 +2386,17 @@
static void printUdpInfo(void)
{
struct sockaddr_in addr;
- int len;
+ socklen_t addrlen;
- len = sizeof(addr);
- if (getsockname(udpSock, (struct sockaddr *) &addr, &len) < 0) {
+ addrlen = sizeof(addr);
+ if (getsockname(udpSock, (struct sockaddr *) &addr, &addrlen) < 0) {
perror("printUdpInfo: getsockname");
return;
}
UDPDIAG(("LOCAL: addr=0x%x, family=%d, port=%d\n", addr.sin_addr.s_addr,
addr.sin_family, ntohs(addr.sin_port)));
- if (getpeername(udpSock, (struct sockaddr *) &addr, &len) < 0) {
+ if (getpeername(udpSock, (struct sockaddr *) &addr, &addrlen) < 0) {
perror("printUdpInfo: getpeername");
return;
}
Index: wander2.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/ntserv/wander2.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- wander2.c 21 Mar 2005 05:23:44 -0000 1.1
+++ wander2.c 22 Apr 2006 02:16:46 -0000 1.2
@@ -14,6 +14,12 @@
static const double incrementrecip = 62.5;
static float *Cosine, *Sine;
+static void pfree(void)
+{
+ free(Cosine);
+ free(Sine);
+}
+
/* call only once */
void pinit(void)
{
@@ -25,7 +31,11 @@
pre = 3.5/increment;
Cosine = (float*) calloc(sizeof(float), pre);
+ if (Cosine == NULL) abort();
Sine = (float*) calloc(sizeof(float), pre);
+ if (Sine == NULL) abort();
+ atexit(pfree);
+
for (i = 0; i < pre; i++) {
Cosine[i] = cos((double)i*increment);
Sine[i] = sin((double)i*increment);