X-Git-Url: https://git.distorted.org.uk/~mdw/tripe/blobdiff_plain/8d513103f66617e96234d19813ab655ed9d5d13d..a82111971280c0812976088072cd67a9752224a3:/server/tripe.h?ds=sidebyside diff --git a/server/tripe.h b/server/tripe.h index baae9078..f447be50 100644 --- a/server/tripe.h +++ b/server/tripe.h @@ -62,10 +62,17 @@ #include #include +#ifdef HAVE_LIBADNS +# define ADNS_FEATURE_MANYAF +# include +#endif + #include #include #include -#include +#ifndef HAVE_LIBADNS +# include +#endif #include #include #include @@ -413,10 +420,10 @@ extern const bulkops bulktab[]; /* --- The address-family table --- */ #define ADDRFAM(_) \ - _(INET) + _(INET, want_ipv4) enum { -#define ENUM(af) AFIX_##af, +#define ENUM(af, qf) AFIX_##af, ADDRFAM(ENUM) #undef ENUM NADDRFAM @@ -425,6 +432,9 @@ enum { extern const struct addrfam { int af; const char *name; +#ifdef HAVE_LIBADNS + adns_queryflags qf; +#endif } aftab[NADDRFAM]; /* --- Socket addresses --- * @@ -689,7 +699,11 @@ typedef struct admin_bgop { typedef struct admin_resop { admin_bgop bg; /* Background operation header */ char *addr; /* Hostname to be resolved */ +#ifdef HAVE_LIBADNS + adns_query q; +#else bres_client r; /* Background resolver task */ +#endif sel_timer t; /* Timer for resolver */ addr sa; /* Socket address */ unsigned port; /* Port number chosen */ @@ -1585,15 +1599,14 @@ extern const addr *p_addr(peer */*p*/); /* --- @p_init@ --- * * - * Arguments: @struct in_addr addr@ = address to bind to - * @unsigned port@ = port number to listen to + * Arguments: @struct addrinfo *ailist@ = addresses to bind to * * Returns: --- * * Use: Initializes the peer system; creates the socket. */ -extern void p_init(struct in_addr /*addr*/, unsigned /*port*/); +extern void p_init(struct addrinfo */*ailist*/); /* --- @p_port@ --- * * @@ -1780,6 +1793,19 @@ extern int afix(int af); extern socklen_t addrsz(const addr */*a*/); +/* --- @getport@, @setport@ --- * + * + * Arguments: @addr *a@ = a network address + * @unsigned port@ = port number to set + * + * Returns: --- + * + * Use: Retrieves or sets the port number in an address structure. + */ + +extern unsigned getport(addr */*a*/); +extern void setport(addr */*a*/, unsigned /*port*/); + /* --- @seq_reset@ --- * * * Arguments: @seqwin *s@ = sequence-checking window