+ for (u=0; u < limit; u++) if (child[u].pid == 0) { byte_copy(child[u].ip,4,remoteip); child[u].pid = pid; break; }
diff -ruN tcpserver.c.orig tcpserver.c
--- tcpserver.c.orig 2000-03-18 10:18:42.000000000 -0500
+++ tcpserver.c 2007-12-22 02:41:24.000000000 -0500
+#define FSHIFT 8 /* bits to right of fixed binary point */
+#define FSCALE (1<<FSHIFT)
+#define loaddouble(la) ((double)(la) / FSCALE)
static stralloc addresses;
+static stralloc diemsg_buf;
+static stralloc diemsg2_buf;
+static stralloc diemsg3_buf;
+static stralloc diemsg4_buf;
/* ---------------------------- child */
int flagallownorules = 0;
+unsigned long maxload = 0;
strerr_die4sys(111,DROP,"unable to read ",fnrules,": ");
+unsigned long limit = 40;
void found(char *data,unsigned int datalen)
if (data[1 + split] == '=') {
env(data + 1,data + 1 + split + 1);
+ if (str_diff(data+1, "MAXLOAD") == 0) scan_ulong(data+1+split+1,&maxload);
+ if (str_diff(data+1, "MAXCONNIP") == 0) scan_ulong(data+1+split+1,&maxconnip);
+ if (str_diff(data+1, "MAXCONNC") == 0) scan_ulong(data+1+split+1,&maxconnc);
+ if (str_diff(data+1, "DIEMSG") == 0) {