X-Git-Url: https://jfr.im/git/irc/quakenet/snircd.git/blobdiff_plain/189935b1376a47e65bed629c0ec9552e7c791e61..9f8856e99d8fe297de1ddf0cff73dc2ff4900c60:/include/res.h?ds=sidebyside diff --git a/include/res.h b/include/res.h index 6e8e3a5..0dd6181 100644 --- a/include/res.h +++ b/include/res.h @@ -1,6 +1,6 @@ /** @file * @brief IRC resolver API. - * @version $Id: res.h,v 1.17 2005/06/27 13:25:51 entrope Exp $ + * @version $Id: res.h,v 1.17.2.2 2006/03/14 03:45:52 entrope Exp $ */ #ifndef INCLUDED_res_h @@ -45,6 +45,7 @@ struct StatDesc; #define QUERY 0 /**< Forward (normal) DNS query operation. */ #define NO_ERRORS 0 /**< No errors processing a query. */ #define SERVFAIL 2 /**< Server error while processing a query. */ +#define NXDOMAIN 3 /**< Domain name in query does not exist. */ #define T_A 1 /**< Hostname -> IPv4 query type. */ #define T_AAAA 28 /**< Hostname -> IPv6 query type. */ #define T_PTR 12 /**< IP(v4 or v6) -> hostname query type. */ @@ -115,6 +116,16 @@ extern void report_dns_servers(struct Client *source_p, const struct StatDesc *s extern void gethost_byname(const char *name, dns_callback_f callback, void *ctx); extern void gethost_byaddr(const struct irc_in_addr *addr, dns_callback_f callback, void *ctx); +/** Evaluate to non-zero if \a ADDR is an unspecified (all zeros) address. */ +#define irc_in_addr_unspec(ADDR) (((ADDR)->in6_16[0] == 0) \ + && ((ADDR)->in6_16[1] == 0) \ + && ((ADDR)->in6_16[2] == 0) \ + && ((ADDR)->in6_16[3] == 0) \ + && ((ADDR)->in6_16[4] == 0) \ + && ((ADDR)->in6_16[6] == 0) \ + && ((ADDR)->in6_16[7] == 0) \ + && ((ADDR)->in6_16[5] == 0 \ + || (ADDR)->in6_16[5] == 65535)) /** Evaluate to non-zero if \a ADDR is a valid address (not all 0s and not all 1s). */ #define irc_in_addr_valid(ADDR) (((ADDR)->in6_16[0] && ~(ADDR)->in6_16[0]) \ || (ADDR)->in6_16[1] != (ADDR)->in6_16[0] \