From 981624ea0e1f89287ec814b181d098ea54832705 Mon Sep 17 00:00:00 2001 From: Marko Kreen Date: Wed, 2 Nov 2011 00:28:49 +0200 Subject: [PATCH] dns_callback: restore ipv6 branch seems it was lost during merge. --- src/objects.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/objects.c b/src/objects.c index 614d1fd..a2f7bd6 100644 --- a/src/objects.c +++ b/src/objects.c @@ -844,6 +844,7 @@ static void dns_callback(void *arg, const struct sockaddr *sa, int salen) struct PgSocket *server = arg; struct PgDatabase *db = server->pool->db; struct sockaddr_in sa_in; + struct sockaddr_in6 sa_in6; server->dns_token = NULL; @@ -858,8 +859,16 @@ static void dns_callback(void *arg, const struct sockaddr *sa, int salen) salen = sizeof(sa_in); slog_debug(server, "dns_callback: inet4: %s", sa2str(sa, buf, sizeof(buf))); + } else if (sa->sa_family == AF_INET6) { + char buf[64]; + memcpy(&sa_in6, sa, sizeof(sa_in6)); + sa_in6.sin6_port = htons(db->port); + sa = (struct sockaddr *)&sa_in6; + salen = sizeof(sa_in6); + slog_debug(server, "dns_callback: inet6: %s", + sa2str(sa, buf, sizeof(buf))); } else { - disconnect_server(server, true, "unknown dns type"); + disconnect_server(server, true, "unknown address family: %d", sa->sa_family); return; } -- 2.40.0