chiark / gitweb /
server/: Wrap `udpsock' selectors up in a custom structure.
[tripe] / server / admin.c
index 87bb90530653529c39902db80e770584d8fef373..24f839778348c339ffb26248b3c0f6f76e90b7a1 100644 (file)
@@ -1233,7 +1233,7 @@ static void a_resolve(admin *a, admin_resop *r, const char *tag,
     { fam = "ANY"; af = AF_UNSPEC; i++; }
   else for (j = 0; j < NADDRFAM; j++) {
     if (mystrieq(av[i], aftab[j].name)) {
-      if (udpsock[j].fd < 0) {
+      if (udpsock[j].sf.fd < 0) {
        a_fail(a, "disabled-address-family", "%s", aftab[j].name, A_END);
        goto fail;
       }
@@ -1286,7 +1286,7 @@ static void a_resolve(admin *a, admin_resop *r, const char *tag,
   aihint.ai_flags = AI_NUMERICHOST;
   if (!getaddrinfo(av[i], 0, &aihint, &ailist)) {
     for (ai = ailist; ai; ai = ai->ai_next) {
-      if ((j = afix(ai->ai_family)) >= 0 && udpsock[j].fd >= 0)
+      if ((j = afix(ai->ai_family)) >= 0 && udpsock[j].sf.fd >= 0)
        break;
     }
     if (!ai) {
@@ -1315,7 +1315,7 @@ static void a_resolve(admin *a, admin_resop *r, const char *tag,
 #ifdef HAVE_LIBADNS
   qf = adns_qf_search;
   for (j = 0; j < NADDRFAM; j++) {
-    if ((af == AF_UNSPEC || af == aftab[i].af) && udpsock[j].fd >= 0)
+    if ((af == AF_UNSPEC || af == aftab[i].af) && udpsock[j].sf.fd >= 0)
       qf |= aftab[j].qf;
   }
   if ((err = adns_submit(ads, r->addr, adns_r_addr, qf, r, &r->q)) != 0) {
@@ -1331,7 +1331,7 @@ static void a_resolve(admin *a, admin_resop *r, const char *tag,
     a_bgfail(&r->bg, "resolve-error", "%s", r->addr, A_END);
     goto fail_release;
   }
-  if (udpsock[AFIX_INET].fd < 0) {
+  if (udpsock[AFIX_INET].sf.fd < 0) {
     a_bgfail(&r->bg, "disabled-address-family", "INET", A_END);
     goto fail_release;
   }
@@ -1870,13 +1870,13 @@ static void acmd_port(admin *a, unsigned ac, char *av[])
     a_fail(a, "unknown-address-family", "%s", av[0], A_END);
     return;
   found:
-    if (udpsock[i].fd < 0) {
+    if (udpsock[i].sf.fd < 0) {
       a_fail(a, "disabled-address-family", "%s", aftab[i].name, A_END);
       return;
     }
   } else {
     for (i = 0; i < NADDRFAM; i++)
-      if (udpsock[i].fd >= 0) goto found;
+      if (udpsock[i].sf.fd >= 0) goto found;
     abort();
   }
   a_info(a, "%u", p_port(i), A_END);