#include /* for NULL */ #include /* for time_t */ #include /* for sockaddr */ #define MAXSERVERS 200 #define MAXPLAYERS 32 #define MAXBUFFER 500 struct server { char *buffer; /* pointer to packet buffer */ char bogus; /* whether entry is considered bogus */ unsigned int length; /* byte length of buffer */ time_t received; /* date time packet received */ struct sockaddr source; /* ip address of packet source */ /* pointers within packet buffer to server items */ struct { char *address, *type, *port, *players, *free, *tmode, *comment; } server; /* pointers within packet buffer to player items */ struct { char *slot, *team, *class, *rank, *name, *login; } player[MAXPLAYERS]; }; int svr_initialise(); struct server *svr_find(struct server *server); void svr_update(struct server *server); int svr_traverse ( int ((*compar)(const struct server *, const struct server *)), int ((*action)(const struct server *)) ); int svr_save(); int svr_load();