Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members

xline.h

Go to the documentation of this file.
00001 /*       +------------------------------------+
00002  *       | Inspire Internet Relay Chat Daemon |
00003  *       +------------------------------------+
00004  *
00005  *  Inspire is copyright (C) 2002-2004 ChatSpike-Dev.
00006  *                       E-mail:
00007  *                <brain@chatspike.net>
00008  *                <Craig@chatspike.net>
00009  *     
00010  * Written by Craig Edwards, Craig McLure, and others.
00011  * This program is free but copyrighted software; see
00012  *            the file COPYING for details.
00013  *
00014  * ---------------------------------------------------
00015  */
00016 
00017 #ifndef __XLINE_H
00018 #define __XLINE_H
00019 
00020 // include the common header files
00021 
00022 #include <typeinfo>
00023 #include <iostream>
00024 #include <string>
00025 #include <deque>
00026 #include <sstream>
00027 #include <vector>
00028 #include "users.h"
00029 #include "channels.h"
00030 
00031 
00034 class XLine : public classbase
00035 {
00036   public:
00037 
00040         time_t set_time;
00041         
00044         long duration;
00045         
00048         char source[MAXBUF];
00049         
00052         char reason[MAXBUF];
00053         
00056         long n_matches;
00057         
00058 };
00059 
00062 class KLine : public XLine
00063 {
00064   public:
00068         char hostmask[MAXBUF];
00069 };
00070 
00073 class GLine : public XLine
00074 {
00075   public:
00079         char hostmask[MAXBUF];
00080 };
00081 
00084 class ZLine : public XLine
00085 {
00086   public:
00090         char ipaddr[MAXBUF];
00094         bool is_global;
00095 };
00096 
00099 class QLine : public XLine
00100 {
00101   public:
00105         char nick[MAXBUF];
00109         bool is_global;
00110 };
00111 
00112 void read_xline_defaults();
00113 
00114 void add_gline(long duration, char* source, char* reason, char* hostmask);
00115 void add_qline(long duration, char* source, char* reason, char* nickname);
00116 void add_zline(long duration, char* source, char* reason, char* ipaddr);
00117 void add_kline(long duration, char* source, char* reason, char* hostmask);
00118 
00119 bool del_gline(char* hostmask);
00120 bool del_qline(char* nickname);
00121 bool del_zline(char* ipaddr);
00122 bool del_kline(char* hostmask);
00123 
00124 char* matches_qline(const char* nick);
00125 char* matches_gline(const char* host);
00126 char* matches_zline(const char* ipaddr);
00127 char* matches_kline(const char* host);
00128 
00129 void expire_lines();
00130 void apply_lines();
00131 
00132 void stats_k(userrec* user);
00133 void stats_g(userrec* user);
00134 void stats_q(userrec* user);
00135 void stats_z(userrec* user);
00136 
00137 void gline_set_creation_time(char* host, time_t create_time);
00138 void qline_set_creation_time(char* nick, time_t create_time);
00139 void zline_set_creation_time(char* ip, time_t create_time);
00140 
00141 bool zline_make_global(char* ipaddr);
00142 bool qline_make_global(char* nickname);
00143 
00144 void sync_xlines(serverrec* serv, char* tcp_host);
00145 
00146 #endif
00147 
00148 

Generated on Sat Apr 2 19:27:02 2005 for InspIRCd by doxygen 1.3.3