Author: kroosec
Date: 2017-10-25 17:04:25 +0200 (Wed, 25 Oct 2017)
New Revision: 29929

Modified:
   branches/openvas-libraries-9.0/ChangeLog
   branches/openvas-libraries-9.0/base/openvas_hosts.c
Log:
Backport r29883.

* base/hosts.c (gvm_host_reverse_lookup): Retry on getnameinfo()
returning EAI_AGAIN.

Modified: branches/openvas-libraries-9.0/ChangeLog
===================================================================
--- branches/openvas-libraries-9.0/ChangeLog    2017-10-25 15:03:56 UTC (rev 
29928)
+++ branches/openvas-libraries-9.0/ChangeLog    2017-10-25 15:04:25 UTC (rev 
29929)
@@ -1,5 +1,12 @@
 2017-10-25  Hani Benhabiles  <hani.benhabi...@greenbone.net>
 
+       Backport r29883.
+
+       * base/hosts.c (gvm_host_reverse_lookup): Retry on getnameinfo()
+       returning EAI_AGAIN.
+
+2017-10-25  Hani Benhabiles  <hani.benhabi...@greenbone.net>
+
        Backport r29916.
 
        * nasl/nasl_socket.c (nasl_open_privileged_socket): Set lowest_socket

Modified: branches/openvas-libraries-9.0/base/openvas_hosts.c
===================================================================
--- branches/openvas-libraries-9.0/base/openvas_hosts.c 2017-10-25 15:03:56 UTC 
(rev 29928)
+++ branches/openvas-libraries-9.0/base/openvas_hosts.c 2017-10-25 15:04:25 UTC 
(rev 29929)
@@ -1386,17 +1386,22 @@
   else if (host->type == HOST_TYPE_IPV4)
     {
       struct sockaddr_in sa;
+      int retry = 2;
       gchar hostname[1000];
 
       bzero (&sa, sizeof (struct sockaddr));
       sa.sin_addr = host->addr;
       sa.sin_family = AF_INET;
-
-      if (getnameinfo ((struct sockaddr *) &sa, sizeof (sa), hostname,
-                       sizeof (hostname), NULL, 0, NI_NAMEREQD))
-        return NULL;
-      else
-        return g_strdup (hostname);
+      while (retry--)
+        {
+          int ret = getnameinfo ((struct sockaddr *) &sa, sizeof (sa), 
hostname,
+                                 sizeof (hostname), NULL, 0, NI_NAMEREQD);
+          if (!ret)
+            return g_strdup (hostname);
+          if (ret != EAI_AGAIN)
+            break;
+        }
+      return NULL;
     }
   else if (host->type == HOST_TYPE_IPV6)
     {

_______________________________________________
Openvas-commits mailing list
Openvas-commits@wald.intevation.org
https://lists.wald.intevation.org/cgi-bin/mailman/listinfo/openvas-commits

Reply via email to