This commit was generated by cvs2svn to compensate for changes in r2,
[ircu2.10.12-pk.git] / include / s_serv.h
1 #ifndef S_SERV_H
2 #define S_SERV_H
3
4 #include "struct.h"
5
6 /*=============================================================================
7  * General defines
8  */
9
10 /*-----------------------------------------------------------------------------
11  * Macro's
12  */
13
14 #define STAT_PING               0
15 #define STAT_LOG                1       /* logfile for -x */
16 #define STAT_MASTER             2       /* Local ircd master before identification */
17 #define STAT_CONNECTING         3
18 #define STAT_HANDSHAKE          4
19 #define STAT_ME                 5
20 #define STAT_UNKNOWN            6
21 #define STAT_UNKNOWN_USER       7       /* Connect to client port */
22 #define STAT_UNKNOWN_SERVER     8       /* Connect to server port */
23 #define STAT_SERVER             9
24 #define STAT_USER               10
25
26 /* 
27  * for when you wanna create a bitmask of status values
28  */
29 #define StatusMask(T) (1<<(T))
30 #define IsStatMask(x, s) (StatusMask((x)->status) & (s))
31
32 /*
33  * status macros.
34  */
35 #define IsRegistered(x)         (IsStatMask(x, \
36                                         StatusMask(STAT_SERVER)|\
37                                         StatusMask(STAT_USER)))
38 #define IsConnecting(x)         ((x)->status == STAT_CONNECTING)
39 #define IsHandshake(x)          ((x)->status == STAT_HANDSHAKE)
40 #define IsMe(x)                 ((x)->status == STAT_ME)
41 #define IsUnknown(x)            (IsStatMask(x, \
42                                         StatusMask(STAT_UNKNOWN)|\
43                                         StatusMask(STAT_UNKNOWN_USER)|\
44                                         StatusMask(STAT_UNKNOWN_SERVER)|\
45                                         StatusMask(STAT_MASTER)))
46 #define IsServerPort(x)         ((x)->status == STAT_UNKNOWN_SERVER )
47 #define IsUserPort(x)           ((x)->status == STAT_UNKNOWN_USER )
48 #define IsMaster(x)             ((x)->status == STAT_MASTER)
49 #define IsClient(x)             (IsStatMask(x, \
50                                         StatusMask(STAT_MASTER)|\
51                                         StatusMask(STAT_HANDSHAKE)|\
52                                         StatusMask(STAT_ME)|\
53                                         StatusMask(STAT_UNKNOWN)|\
54                                         StatusMask(STAT_UNKNOWN_USER)|\
55                                         StatusMask(STAT_UNKNOWN_SERVER)|\
56                                         StatusMask(STAT_SERVER)|\
57                                         StatusMask(STAT_USER)))
58 #define IsTrusted(x)            (IsStatMask(x, \
59                                         StatusMask(STAT_PING)|\
60                                         StatusMask(STAT_LOG)|\
61                                         StatusMask(STAT_CONNECTING)|\
62                                         StatusMask(STAT_HANDSHAKE)|\
63                                         StatusMask(STAT_ME)|\
64                                         StatusMask(STAT_SERVER)))
65 #ifdef DEBUGMODE                /* Coredump if we miss something... */
66 #define IsServer(x)             ( ((x)->status == STAT_SERVER) && \
67                                   (((x)->serv) ? 1 : (*((char *) NULL) = 0)) )
68 #define IsUser(x)               ( ((x)->status == STAT_USER) && \
69                                   (((x)->user) ? 1 : (*((char *) NULL) = 0)) )
70 #else
71 #define IsServer(x)             ((x)->status == STAT_SERVER)
72 #define IsUser(x)               ((x)->status == STAT_USER)
73 #endif
74 #define IsLog(x)                ((x)->status == STAT_LOG)
75 #define IsPing(x)               ((x)->status == STAT_PING)
76
77 #define SetMaster(x)            ((x)->status = STAT_MASTER)
78 #define SetConnecting(x)        ((x)->status = STAT_CONNECTING)
79 #define SetHandshake(x)         ((x)->status = STAT_HANDSHAKE)
80 #define SetServer(x)            ((x)->status = STAT_SERVER)
81 #define SetMe(x)                ((x)->status = STAT_ME)
82 #define SetUser(x)              ((x)->status = STAT_USER)
83
84 /*=============================================================================
85  * Proto types
86  */
87
88 extern int m_server(aClient *cptr, aClient *sptr, int parc, char *parv[]);
89 extern int m_server_estab(aClient *cptr, aConfItem *aconf, aConfItem *bconf);
90 extern int m_error(aClient *cptr, aClient *sptr, int parc, char *parv[]);
91 extern int m_end_of_burst(aClient *cptr, aClient *sptr, int parc, char *parv[]);
92 extern int m_end_of_burst_ack(aClient *cptr, aClient *sptr,
93     int parc, char *parv[]);
94 extern int m_desynch(aClient *cptr, aClient *sptr, int parc, char *parv[]);
95
96 extern unsigned int max_connection_count, max_client_count;
97
98 #endif /* S_SERV_H */