00001 #ifndef __XLINE_H
00002 #define __XLINE_H
00003
00004
00005
00006 #include <typeinfo>
00007 #include <iostream>
00008 #include <string>
00009 #include <deque>
00010 #include <sstream>
00011 #include <vector>
00012 #include "users.h"
00013 #include "channels.h"
00014
00015
00018 class XLine : public classbase
00019 {
00020 public:
00021
00024 time_t set_time;
00025
00028 long duration;
00029
00032 char source[MAXBUF];
00033
00036 char reason[MAXBUF];
00037
00040 long n_matches;
00041
00042 };
00043
00046 class KLine : public XLine
00047 {
00048 public:
00052 char hostmask[MAXBUF];
00053 };
00054
00057 class GLine : public XLine
00058 {
00059 public:
00063 char hostmask[MAXBUF];
00064 };
00065
00068 class ZLine : public XLine
00069 {
00070 public:
00074 char ipaddr[MAXBUF];
00078 bool is_global;
00079 };
00080
00083 class QLine : public XLine
00084 {
00085 public:
00089 char nick[MAXBUF];
00093 bool is_global;
00094 };
00095
00096 void read_xline_defaults();
00097
00098 void add_gline(long duration, char* source, char* reason, char* hostmask);
00099 void add_qline(long duration, char* source, char* reason, char* nickname);
00100 void add_zline(long duration, char* source, char* reason, char* ipaddr);
00101 void add_kline(long duration, char* source, char* reason, char* hostmask);
00102
00103 bool del_gline(char* hostmask);
00104 bool del_qline(char* nickname);
00105 bool del_zline(char* ipaddr);
00106 bool del_kline(char* hostmask);
00107
00108 char* matches_qline(const char* nick);
00109 char* matches_gline(const char* host);
00110 char* matches_zline(const char* ipaddr);
00111 char* matches_kline(const char* host);
00112
00113 void expire_lines();
00114 void apply_lines();
00115
00116 void stats_k(userrec* user);
00117 void stats_g(userrec* user);
00118 void stats_q(userrec* user);
00119 void stats_z(userrec* user);
00120
00121 void gline_set_creation_time(char* host, time_t create_time);
00122 void qline_set_creation_time(char* nick, time_t create_time);
00123 void zline_set_creation_time(char* ip, time_t create_time);
00124
00125 bool zline_make_global(char* ipaddr);
00126 bool qline_make_global(char* nickname);
00127
00128 void sync_xlines(serverrec* serv, char* tcp_host);
00129
00130 #endif
00131
00132