6 /*=============================================================================
10 /*-----------------------------------------------------------------------------
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
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 */
27 * for when you wanna create a bitmask of status values
29 #define StatusMask(T) (1<<(T))
30 #define IsStatMask(x, s) (StatusMask((x)->status) & (s))
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)|\
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)|\
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)) )
71 #define IsServer(x) ((x)->status == STAT_SERVER)
72 #define IsUser(x) ((x)->status == STAT_USER)
74 #define IsLog(x) ((x)->status == STAT_LOG)
75 #define IsPing(x) ((x)->status == STAT_PING)
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)
84 /*=============================================================================
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[]);
96 extern unsigned int max_connection_count, max_client_count;