From: mdw Date: Sat, 3 Jul 1999 13:56:04 +0000 (+0000) Subject: Perform a forward resolution to verify result of reverse lookup. X-Git-Tag: 1.0.0~2 X-Git-Url: https://git.distorted.org.uk/~mdw/fwd/commitdiff_plain/08c3700b9bfe51e9b09c11a3aff64bcfad11f52b Perform a forward resolution to verify result of reverse lookup. --- diff --git a/bres.c b/bres.c index d04d15f..0d09f3b 100644 --- a/bres.c +++ b/bres.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: bres.c,v 1.1 1999/07/01 08:56:23 mdw Exp $ + * $Id: bres.c,v 1.2 1999/07/03 13:56:04 mdw Exp $ * * Background reverse name resolution * @@ -29,8 +29,11 @@ /*----- Revision history --------------------------------------------------* * * $Log: bres.c,v $ - * Revision 1.1 1999/07/01 08:56:23 mdw - * Initial revision + * Revision 1.2 1999/07/03 13:56:04 mdw + * Perform a forward resolution to verify result of reverse lookup. + * + * Revision 1.1.1.1 1999/07/01 08:56:23 mdw + * Initial revision. * */ @@ -52,6 +55,7 @@ #include #include +#include #include #include #include @@ -166,9 +170,26 @@ static void child(int rfd, int cfd) continue; h = gethostbyaddr((char *)&addr, sizeof(addr), AF_INET); - if (h) - p = h->h_name; - else + if (h) { + char **pp; + + p = xstrdup(h->h_name); + h = gethostbyname(p); + free(p); + p = 0; + if (h) { + for (pp = h->h_addr_list; *pp; pp++) { + struct in_addr a; + memcpy(&a, *pp, sizeof(a)); + if (a.s_addr == addr.s_addr) { + p = h->h_name; + break; + } + } + } + } + + if (!p) p = inet_ntoa(addr); fprintf(fp, "%s\n", p); fflush(fp);