You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.1 KiB
38 lines
1.1 KiB
/* Copyright 2016 Alex 'AdUser' Z (ad_user@runbox.com) |
|
* |
|
* This program is free software; you can redistribute it and/or modify |
|
* it under the terms of the GNU General Public License version 2 as |
|
* published by the Free Software Foundation. |
|
*/ |
|
#ifndef F2B_IPADDR_H_ |
|
#define F2B_IPADDR_H_ |
|
|
|
#include <arpa/inet.h> |
|
|
|
#include "matches.h" |
|
|
|
#define IPADDR_MAX 48 /* 8 x "ffff" + 7 x "::" + '\0' */ |
|
|
|
typedef struct f2b_ipaddr_t { |
|
struct f2b_ipaddr_t *next; |
|
int type; |
|
char text[IPADDR_MAX]; |
|
bool banned; |
|
time_t lastseen; |
|
time_t bantime; |
|
union { |
|
struct in_addr v4; |
|
struct in6_addr v6; |
|
} binary; |
|
f2b_matches_t matches; |
|
} f2b_ipaddr_t; |
|
|
|
f2b_ipaddr_t * f2b_ipaddr_create (const char *addr, size_t max_matches); |
|
void f2b_ipaddr_destroy(f2b_ipaddr_t *ipaddr); |
|
|
|
f2b_ipaddr_t * f2b_addrlist_append(f2b_ipaddr_t *list, f2b_ipaddr_t *ipaddr); |
|
f2b_ipaddr_t * f2b_addrlist_lookup(f2b_ipaddr_t *list, const char *addr); |
|
f2b_ipaddr_t * f2b_addrlist_remove(f2b_ipaddr_t *list, const char *addr); |
|
f2b_ipaddr_t * f2b_addrlist_destroy(f2b_ipaddr_t *list); |
|
|
|
#endif /* F2B_IPADDR_H_ */
|
|
|