Fixed banning to work for both v4 and v6
[umurmur.git] / src / ban.h
index 61d5774b03c8510928606bae4503d966ba0df4df..dccf26fdac1cac76256169e587b79834b03df18d 100644 (file)
--- a/src/ban.h
+++ b/src/ban.h
@@ -1,5 +1,5 @@
-/* Copyright (C) 2009-2012, Martin Johansson <martin@fatbob.nu>
-   Copyright (C) 2005-2012, Thorvald Natvig <thorvald@natvig.com>
+/* Copyright (C) 2009-2014, Martin Johansson <martin@fatbob.nu>
+   Copyright (C) 2005-2014, Thorvald Natvig <thorvald@natvig.com>
 
    All rights reserved.
 
 
 typedef struct {
        uint8_t hash[20];
-       in_addr_t address;
+       uint8_t address[16];
+       uint32_t mask;
        char *reason;
        char *name;
+       time_t time;
+       uint32_t duration;
        etimer_t startTime;
        struct dlist node;
 } ban_t;
@@ -48,6 +51,12 @@ typedef struct {
 void Ban_UserBan(client_t *client, char *reason);
 void Ban_pruneBanned();
 bool_t Ban_isBanned(client_t *client);
-bool_t Ban_isBannedAddr(in_addr_t *addr);
+bool_t Ban_isBannedAddr(struct sockaddr_storage *address);
+int Ban_getBanCount(void);
+message_t *Ban_getBanList(void);
+void Ban_putBanList(message_t *msg, int n_bans);
+void Ban_clearBanList(void);
+void Ban_init(void);
+void Ban_deinit(void);
 
 #endif