4 // include the common header files
16 /** XLine is the base class for ban lines such as G lines and K lines.
18 class XLine : public classbase
22 /** The time the line was added.
26 /** The duration of the ban, or 0 if permenant
30 /** Source of the ban. This can be a servername or an oper nickname
34 /** Reason for the ban
38 /** Number of times the core matches the ban, for statistics
46 class KLine : public XLine
49 /** Hostmask (ident@host) to match against
50 * May contain wildcards.
52 char hostmask[MAXBUF];
57 class GLine : public XLine
60 /** Hostmask (ident@host) to match against
61 * May contain wildcards.
63 char hostmask[MAXBUF];
68 class ZLine : public XLine
71 /** IP Address (xx.yy.zz.aa) to match against
72 * May contain wildcards.
75 /** Set if this is a global Z:line
76 * (e.g. it came from another server)
83 class QLine : public XLine
86 /** Nickname to match against.
87 * May contain wildcards.
90 /** Set if this is a global Z:line
91 * (e.g. it came from another server)
96 void read_xline_defaults();
98 void add_gline(long duration, char* source, char* reason, char* hostmask);
99 void add_qline(long duration, char* source, char* reason, char* nickname);
100 void add_zline(long duration, char* source, char* reason, char* ipaddr);
101 void add_kline(long duration, char* source, char* reason, char* hostmask);
103 bool del_gline(char* hostmask);
104 bool del_qline(char* nickname);
105 bool del_zline(char* ipaddr);
106 bool del_kline(char* hostmask);
108 char* matches_qline(const char* nick);
109 char* matches_gline(const char* host);
110 char* matches_zline(const char* ipaddr);
111 char* matches_kline(const char* host);
116 void stats_k(userrec* user);
117 void stats_g(userrec* user);
118 void stats_q(userrec* user);
119 void stats_z(userrec* user);
121 void gline_set_creation_time(char* host, time_t create_time);
122 void qline_set_creation_time(char* nick, time_t create_time);
123 void zline_set_creation_time(char* ip, time_t create_time);
125 bool zline_make_global(char* ipaddr);
126 bool qline_make_global(char* nickname);
128 void sync_xlines(serverrec* serv, char* tcp_host);