]> jfr.im git - solanum.git/blobdiff - include/blacklist.h
Add BlindSight to the credits
[solanum.git] / include / blacklist.h
index ce3aec4d68ff40f6a9c011c447a9edf3463e63f7..7c8fc23ee517d2eb8f546fe6a10b75e91c9498c3 100644 (file)
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
- *
- *  $Id: blacklist.h 2023 2006-09-02 23:47:27Z jilles $
  */
 
 #ifndef _BLACKLIST_H_
 #define _BLACKLIST_H_
 
+#include "stdinc.h"
+
+#define BLACKLIST_FILTER_ALL 1
+#define BLACKLIST_FILTER_LAST 2
+
 /* A configured DNSBL */
 struct Blacklist {
        unsigned int status;    /* If CONF_ILLEGAL, delete when no clients */
        int refcount;
-       char host[HOSTLEN];
-       char reject_reason[IRCD_BUFSIZE];
+       int ipv4;       /* Does this blacklist support IPv4 lookups? */
+       int ipv6;       /* Does this blacklist support IPv6 lookups? */
+       char host[IRCD_RES_HOSTLEN + 1];
+       rb_dlink_list filters;  /* Filters for queries */
+       char reject_reason[BUFSIZE];
        unsigned int hits;
        time_t lastwarning;
 };
@@ -39,17 +45,24 @@ struct Blacklist {
 struct BlacklistClient {
        struct Blacklist *blacklist;
        struct Client *client_p;
-       struct DNSQuery dns_query;
-       dlink_node node;
+       uint16_t dns_id;
+       rb_dlink_node node;
+};
+
+/* A blacklist filter */
+struct BlacklistFilter {
+       int type;               /* Type of filter */
+       char filterstr[HOSTIPLEN]; /* The filter itself */
+       rb_dlink_node node;
 };
 
 /* public interfaces */
-struct Blacklist *new_blacklist(char *host, char *reject_entry);
+struct Blacklist *new_blacklist(char *host, char *reject_reason, int ipv4, int ipv6, rb_dlink_list *filters);
 void lookup_blacklists(struct Client *client_p);
 void abort_blacklist_queries(struct Client *client_p);
 void unref_blacklist(struct Blacklist *blptr);
 void destroy_blacklists(void);
 
-extern dlink_list blacklist_list;
+extern rb_dlink_list blacklist_list;
 
 #endif