server/addrmap.c (hash): Visually tighten the arithmetic.
[tripe] / server / tripe.h
index fc866b8..f447be5 100644 (file)
 #include <pwd.h>
 #include <grp.h>
 
+#ifdef HAVE_LIBADNS
+#  define ADNS_FEATURE_MANYAF
+#  include <adns.h>
+#endif
+
 #include <mLib/alloc.h>
 #include <mLib/arena.h>
 #include <mLib/base64.h>
-#include <mLib/bres.h>
+#ifndef HAVE_LIBADNS
+#  include <mLib/bres.h>
+#endif
 #include <mLib/codec.h>
 #include <mLib/daemonize.h>
 #include <mLib/dstr.h>
@@ -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 */