Update of /cvsroot/netrek/client/netrekxp/src
In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv16125/src
Modified Files:
parsemeta.c
Log Message:
Minor release date updates.
Formalize max lifetime for servers in cache. Check against out of bounds
lifetime before saving.
Index: parsemeta.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/parsemeta.c,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -d -r1.34 -r1.35
--- parsemeta.c 4 Mar 2007 22:27:13 -0000 1.34
+++ parsemeta.c 7 Mar 2007 00:11:46 -0000 1.35
@@ -71,6 +71,7 @@
static int seen = 0; /* number of replies seen */
static int type; /* type of connection requested */
#define RTT_AVG_BUFLEN 5 /* number of samples used for average rtt time */
+#define MAX_LIFETIME 5 /* max # connects for server to stay in cache */
/* from meta.h of metaserver code */
#define SS_WORKING 0
@@ -598,12 +599,12 @@
sp->age = (int)now - (int)(sp->when-sp->age);
sp->when = now;
sp->refresh = 1;
- sp->lifetime = 5;
+ sp->lifetime = MAX_LIFETIME;
continue;
} else {
sp->age = age;
sp->when = now;
- sp->lifetime = 5;
+ sp->lifetime = MAX_LIFETIME;
}
}
/* Use converted status and player values */
@@ -689,7 +690,7 @@
sp->age = 0;
sp->when = now;
sp->refresh = 1;
- sp->lifetime = 5;
+ sp->lifetime = MAX_LIFETIME;
sp->players = players;
sp->status = statusOpen;
sp->typeflag = type;
@@ -854,7 +855,8 @@
serverlist[i].port,
serverlist[i].when,
serverlist[i].age,
- serverlist[i].lifetime,
+ // Protect against corrupted data so at least lifetimes clear quickly
+ ((serverlist[i].lifetime > MAX_LIFETIME) ? MAX_LIFETIME : serverlist[i].lifetime),
serverlist[i].players,
((serverlist[i].status <= statusNull) ? serverlist[i].status : statusNull),
serverlist[i].typeflag);