X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/blobdiff_plain/93680998264c0a8b8185dfd4517adf586c72c4bb..78546f2b0f59b5c8fede1ce5535972716eb17041:/lib/irc_ipv6.h diff --git a/lib/irc_ipv6.h b/lib/irc_ipv6.h index f5fb361a..58438578 100644 --- a/lib/irc_ipv6.h +++ b/lib/irc_ipv6.h @@ -56,14 +56,21 @@ struct irc_sockaddr */ #define SOCKIPLEN 45 +#define CIDRLEN SOCKIPLEN + 4 + /* from ircd_string.h */ extern const char* ircd_ntoa(const struct irc_in_addr* addr); extern const char* ircd_ntoa_r(char* buf, const struct irc_in_addr* addr); +extern const char * ircd_ntoa_masked(const struct irc_in_addr* addr, unsigned char bits); +extern const char* ircd_ntoa_masked_r(char* buf, const struct irc_in_addr* in, unsigned char bits); #define ircd_aton(ADDR, STR) ipmask_parse((STR), (ADDR), NULL) extern int ipmask_parse(const char *in, struct irc_in_addr *mask, unsigned char *bits_ptr); +extern int ipmask_check(const struct irc_in_addr *, const struct irc_in_addr *, unsigned char); +void ip_canonicalize_tunnel(struct irc_in_addr *out, const struct irc_in_addr *in); #define IPtostr(ipaddr) ircd_ntoa(&(ipaddr)) +#define CIDRtostr(ipaddr, bits) ircd_ntoa_masked(&(ipaddr), bits) #define irc_in_addr_v4_to_int(ADDR) ((ntohs((ADDR)->in6_16[6]) << 16) | ntohs((ADDR)->in6_16[7])) /* from numnicks.h */