]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/ngircd/class.c
Implement channel exception list (mode 'e')
[ngircd-alex.git] / src / ngircd / class.c
index ee034f2873869f47f3f1be493372d1d19f2dde58..b7a5cbc04a2fa1389fb39e2dfd5b806c44a5598f 100644 (file)
@@ -56,12 +56,14 @@ Class_IsMember(const int Class, CLIENT *Client)
 }
 
 GLOBAL bool
-Class_AddMask(const int Class, const char *Mask, time_t ValidUntil)
+Class_AddMask(const int Class, const char *Mask, time_t ValidUntil,
+             const char *Reason)
 {
        assert(Class < CLASS_COUNT);
        assert(Mask != NULL);
+       assert(Reason != NULL);
 
-       return Lists_Add(&My_Classes[Class], Mask, ValidUntil);
+       return Lists_Add(&My_Classes[Class], Mask, ValidUntil, Reason);
 }
 
 GLOBAL void
@@ -73,4 +75,19 @@ Class_DeleteMask(const int Class, const char *Mask)
        Lists_Del(&My_Classes[Class], Mask);
 }
 
+GLOBAL struct list_head *
+Class_GetList(const int Class)
+{
+       assert(Class < CLASS_COUNT);
+
+       return &My_Classes[Class];
+}
+
+GLOBAL void
+Class_Expire(void)
+{
+       Lists_Expire(&My_Classes[CLASS_GLINE], "G-Line");
+       Lists_Expire(&My_Classes[CLASS_KLINE], "K-Line");
+}
+
 /* -eof- */