]> jfr.im git - irc/quakenet/newserv.git/blame - server/server.h
serverlist/server: Use link TS from the SERVER message.
[irc/quakenet/newserv.git] / server / server.h
CommitLineData
c86edd1d
Q
1/* server.h */
2
3#ifndef __SERVER_H
4#define __SERVER_H
5
6#include "../lib/sstring.h"
7#include "../irc/irc_config.h"
4f2ceb49 8#include "../lib/flags.h"
618cddb2 9#include <time.h>
c86edd1d
Q
10
11#define LS_INVALID 0 /* No server here */
12#define LS_LINKED 1 /* Server fully linked */
13#define LS_LINKING 2 /* This actual server is bursting */
14#define LS_PLINKING 3 /* Some other server between here and there is bursting */
15#define LS_SQUIT 4 /* This server is being deleted due to a SQUIT */
16
4f2ceb49
CP
17#define SMODE_HUB 0x0001
18#define SMODE_IPV6 0x0002
19#define SMODE_SERVICE 0x0004
20#define SMODE_OPERNAME 0x0008
21
22#define SMODE_ALL 0x000F
23
565e90f4
CP
24#define SIsHub(x) ((x)->flags & SMODE_HUB)
25#define SIsIPv6(x) ((x)->flags & SMODE_IPV6)
26#define SIsService(x) ((x)->flags & SMODE_SERVICE)
27#define SHasOpername(x) ((x)->flags & SMODE_OPERNAME)
28
4f2ceb49 29extern const flag smodeflags[];
843184e3 30extern long myhub;
4f2ceb49 31
c86edd1d
Q
32typedef struct {
33 sstring *name;
34 sstring *description;
35 short parent;
36 short linkstate;
37 int maxusernum;
618cddb2 38 time_t ts;
4f2ceb49 39 flag_t flags;
d78b74df 40 unsigned int marker;
c86edd1d
Q
41} server;
42
43extern server serverlist[MAXSERVERS];
44
45int handleservermsg(void *source, int cargc, char **cargv);
46int handleeobmsg(void *source, int cargc, char **argv);
47int handlesquitmsg(void *source, int cargc, char **cargv);
48void handledisconnect(int hooknum, void *arg);
c3db6f7e 49void deleteserver(long servernum);
c86edd1d 50int findserver(const char *name);
d78b74df 51unsigned int nextservermarker(void);
c86edd1d
Q
52
53#endif