X-Git-Url: https://git.distorted.org.uk/~mdw/adns/blobdiff_plain/7bd34114af2d0a1ea0b688104ab56e1a42e51c07..6b6509e643ff931bd5dd99610e7970c42ffe7411:/src/internal.h?ds=sidebyside diff --git a/src/internal.h b/src/internal.h index baf2a29..f25fe9c 100644 --- a/src/internal.h +++ b/src/internal.h @@ -350,6 +350,8 @@ struct adns__query { struct query_queue { adns_query head, tail; }; +#define MAXUDP 2 + struct adns__state { adns_initflags iflags; adns_logcallbackfn *logfn; @@ -357,7 +359,9 @@ struct adns__state { int configerrno; struct query_queue udpw, tcpw, childw, output; adns_query forallnext; - int nextid, udpsocket, tcpsocket; + int nextid, tcpsocket; + struct udpsocket { int af; int fd; } udpsocket[MAXUDP]; + int nudp; vbuf tcpsend, tcprecv; int nservers, nsortlist, nsearchlist, searchndots, tcpserver, tcprecv_skip; enum adns__tcpstate { @@ -568,6 +572,15 @@ void adns__querysend_tcp(adns_query qu, struct timeval now); * might be broken, but no reconnect will be attempted. */ +struct udpsocket *adns__udpsocket_by_af(adns_state ads, int af); +/* Find the UDP socket structure in ads which has the given address family. + * Return null if there isn't one. + * + * This is used during initialization, so ads is only partially filled in. + * The requirements are that nudp is set, and that udpsocket[i].af are + * defined for 0<=i