X-Git-Url: https://git.distorted.org.uk/~mdw/tripe/blobdiff_plain/0451e0e42fbba844a4cd307f5a133b50d8f438f7..8d513103f66617e96234d19813ab655ed9d5d13d:/server/admin.c diff --git a/server/admin.c b/server/admin.c index 8cb44a3c..c5fed8b0 100644 --- a/server/admin.c +++ b/server/admin.c @@ -1028,7 +1028,9 @@ static void a_resolved(struct hostent *h, void *v) r->func(r, ARES_FAIL); } else { T( trace(T_ADMIN, "admin: resop %s ok", BGTAG(r)); ) + r->sa.sin.sin_family = AF_INET; memcpy(&r->sa.sin.sin_addr, h->h_addr, sizeof(struct in_addr)); + r->sa.sin.sin_port = htons(r->port); r->func(r, ARES_OK); } sel_rmtimer(&r->t); @@ -1130,7 +1132,7 @@ static void a_resolve(admin *a, admin_resop *r, const char *tag, a_fail(a, "invalid-port", "%lu", pt, A_END); goto fail; } - r->sa.sin.sin_port = htons(pt); + r->port = pt; /* --- Report backgrounding --- * * @@ -1147,6 +1149,8 @@ static void a_resolve(admin *a, admin_resop *r, const char *tag, if (inet_aton(av[i], &r->sa.sin.sin_addr)) { T( trace(T_ADMIN, "admin: resop %s done the easy way", BGTAG(r)); ) + r->sa.sin.sin_family = AF_INET; + r->sa.sin.sin_port = htons(r->port); func(r, ARES_OK); xfree(r->addr); a_bgrelease(&r->bg);