From 6224ab0ddfea123685e4bd36b45f0346f59b02bb Mon Sep 17 00:00:00 2001 From: Alex 'AdUser' Z Date: Mon, 10 Oct 2016 18:07:15 +1000 Subject: [PATCH] * document ipaddr.h --- src/ipaddr.h | 53 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 14 deletions(-) diff --git a/src/ipaddr.h b/src/ipaddr.h index 7712ba9..73e352a 100644 --- a/src/ipaddr.h +++ b/src/ipaddr.h @@ -13,27 +13,52 @@ #include "matches.h" +/** + * @def IPADDR_MAX + * Maximum text length of address + */ #define IPADDR_MAX 48 /* 8 x "ffff" + 7 x "::" + '\0' */ +/** + * @struct f2b_ipaddr_t + * Describes ip-address and it's metadata + */ typedef struct f2b_ipaddr_t { - struct f2b_ipaddr_t *next; - int type; - char text[IPADDR_MAX]; - bool banned; - size_t bancount; - time_t lastseen; - time_t banned_at; - time_t release_at; + struct f2b_ipaddr_t *next; /**< pointer to next addr */ + int type; /**< address type, AF_INET/AF_INET6 */ + char text[IPADDR_MAX]; /**< textual address */ + bool banned; /**< is address banned, flag */ + size_t bancount; /**< how many times this address was banned */ + time_t lastseen; /**< self-descriptive, unixtime */ + time_t banned_at; /**< self-descriptive, unixtime */ + time_t release_at; /**< self-descriptive, unixtime */ union { - struct in_addr v4; - struct in6_addr v6; - } binary; - f2b_matches_t matches; + struct in_addr v4; /**< AF_INET address */ + struct in6_addr v6; /**< AF_INET6 address */ + } binary; /**< binary address representation, see @a type */ + f2b_matches_t matches; /**< list of matches */ } f2b_ipaddr_t; +/** + * @brief Create address record and fill related metadata + * @param addr Textual address + * @param max_matches Maximum matches count + * @returns Pointer to address or NULL no error + */ f2b_ipaddr_t * f2b_ipaddr_create (const char *addr, size_t max_matches); -void f2b_ipaddr_destroy(f2b_ipaddr_t *ipaddr); -void f2b_ipaddr_status (f2b_ipaddr_t *ipaddr, char *res, size_t ressize); +/** + * @brief Free address metadata + * @param ipaddr Pointer to f2b_ipaddr_t struct + * @note @a ipaddr pointer becomes invalid after calling this function + */ +void f2b_ipaddr_destroy(f2b_ipaddr_t *ipaddr); +/** + * @brief Get some stats about given address + * @param ipaddr Pointer to f2b_ipaddr_t struct + * @param res Buffer for storing stats + * @param ressize Size of buffer above + */ +void f2b_ipaddr_status (f2b_ipaddr_t *ipaddr, char *res, size_t ressize); 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);