svc/conntrack.in: Maintain config groups in a dictionary.
[tripe] / server / servutil.c
index b6fbf5b..f95541a 100644 (file)
@@ -124,7 +124,11 @@ int mystrieq(const char *x, const char *y)
 /*----- Address handling --------------------------------------------------*/
 
 const struct addrfam aftab[] = {
-#define DEF(af) { AF_##af, #af },
+#ifdef HAVE_LIBADNS
+#  define DEF(af, qf) { AF_##af, #af, adns_qf_##qf },
+#else
+#  define DEF(af, qf) { AF_##af, #af },
+#endif
   ADDRFAM(DEF)
 #undef DEF
 };
@@ -156,6 +160,7 @@ socklen_t addrsz(const addr *a)
 {
   switch (a->sa.sa_family) {
     case AF_INET: return (sizeof(a->sin));
+    case AF_INET6: return (sizeof(a->sin6));
     default: abort();
   }
 }
@@ -174,6 +179,7 @@ unsigned getport(addr *a)
 {
   switch (a->sa.sa_family) {
     case AF_INET: return (ntohs(a->sin.sin_port)); break;
+    case AF_INET6: return (ntohs(a->sin6.sin6_port)); break;
     default: abort();
   }
 }
@@ -182,6 +188,7 @@ void setport(addr *a, unsigned port)
 {
   switch (a->sa.sa_family) {
     case AF_INET: a->sin.sin_port = htons(port); break;
+    case AF_INET6: a->sin6.sin6_port = htons(port); break;
     default: abort();
   }
 }