summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/xline.h59
-rw-r--r--src/commands.cpp1
-rw-r--r--src/inspircd.cpp1
-rw-r--r--src/mode.cpp1
-rw-r--r--src/xline.cpp5
5 files changed, 67 insertions, 0 deletions
diff --git a/include/xline.h b/include/xline.h
index 720364dd6..0532ad207 100644
--- a/include/xline.h
+++ b/include/xline.h
@@ -13,5 +13,64 @@
#include "channels.h"
+/** XLine is the base class for ban lines such as G lines and K lines.
+ */
+class XLine : public classbase
+{
+
+ /** The time the line was added.
+ */
+ time_t set_time;
+
+ /** The duration of the ban, or 0 if permenant
+ */
+ long duration;
+
+ /** Source of the ban. This can be a servername or an oper nickname
+ */
+ char source[MAXBUF];
+
+ /** Reason for the ban
+ */
+ char reason[MAXBUF];
+
+ /** Number of times the core matches the ban, for statistics
+ */
+ long n_matches;
+
+};
+
+class KLine : public XLine
+{
+ /** Hostmask (ident@host) to match against
+ * May contain wildcards.
+ */
+ char hostmask[MAXBUF];
+};
+
+class GLine : public XLine
+{
+ /** Hostmask (ident@host) to match against
+ * May contain wildcards.
+ */
+ char hostmask[MAXBUF];
+};
+
+class ZLine : public XLine
+{
+ /** IP Address (xx.yy.zz.aa) to match against
+ * May contain wildcards and may be CIDR
+ */
+ char ipaddr[MAXBUF];
+};
+
+class QLine : public XLine
+{
+ /** Nickname to match against.
+ * May contain wildcards.
+ */
+ char nick[MAXBUF];
+};
#endif
+
diff --git a/src/commands.cpp b/src/commands.cpp
index 3dd1004f1..28d10c3b5 100644
--- a/src/commands.cpp
+++ b/src/commands.cpp
@@ -33,6 +33,7 @@
#include "wildcard.h"
#include "message.h"
#include "mode.h"
+#include "xline.h"
#ifdef GCC3
#define nspace __gnu_cxx
diff --git a/src/inspircd.cpp b/src/inspircd.cpp
index 5b9f54fd1..989faf9c7 100644
--- a/src/inspircd.cpp
+++ b/src/inspircd.cpp
@@ -54,6 +54,7 @@ using namespace std;
#include "message.h"
#include "mode.h"
#include "commands.h"
+#include "xline.h"
#ifdef GCC3
#define nspace __gnu_cxx
diff --git a/src/mode.cpp b/src/mode.cpp
index 38756ffcf..b4b494340 100644
--- a/src/mode.cpp
+++ b/src/mode.cpp
@@ -33,6 +33,7 @@
#include "wildcard.h"
#include "message.h"
#include "commands.h"
+#include "xline.h"
using namespace std;
diff --git a/src/xline.cpp b/src/xline.cpp
index a1febad29..f653d80af 100644
--- a/src/xline.cpp
+++ b/src/xline.cpp
@@ -33,6 +33,7 @@
#include "wildcard.h"
#include "message.h"
#include "commands.h"
+#include "xline.h"
using namespace std;
@@ -55,4 +56,8 @@ extern char list[MAXBUF];
extern char PrefixQuit[MAXBUF];
extern char DieValue[MAXBUF];
+std::vector<KLine> klines;
+std::vector<GLine> glines;
+std::vector<ZLine> zlines;
+std::vector<QLine> qlines;