Fix getaddrinfo() handling in blocking resolver
authorFrank Zschockelt <lm@freakysoft.de>
Sat, 11 May 2019 22:25:49 +0200
changeset 738 264fece7ff0d
parent 737 ca896de7b10d
child 739 4a32df98ff8c
Fix getaddrinfo() handling in blocking resolver If getaddrinfo() fails, the first call setting the result will already free the resolver. Trying to access it afterwards will lead to a warning to the console from glib. getaddrinfo() shouldn't return NULL for the result list if it returns successful.
loudmouth/lm-blocking-resolver.c
--- a/loudmouth/lm-blocking-resolver.c	Sat May 11 22:25:15 2019 +0200
+++ b/loudmouth/lm-blocking-resolver.c	Sat May 11 22:25:49 2019 +0200
@@ -100,31 +100,10 @@
     if (err != 0) {
         _lm_resolver_set_result (LM_RESOLVER (resolver), LM_RESOLVER_RESULT_FAILED,
                                  NULL);
-
         retval = FALSE;
-    }
-
-    if (ans == NULL) {
-        /* Couldn't find any results */
-        g_object_ref (resolver);
-        _lm_resolver_set_result (LM_RESOLVER (resolver), LM_RESOLVER_RESULT_FAILED,
-                                 NULL);
-
-        g_object_unref (resolver);
-        retval = FALSE;
-    }
-
-    /* FIXME: How to set and iterate the results */
-    /*priv->results    = ans;
-      priv->cur_result = ans; */
-
-    if (retval) {
-        g_object_ref (resolver);
-
+    } else {
         _lm_resolver_set_result (LM_RESOLVER (resolver), LM_RESOLVER_RESULT_OK,
                                  ans);
-
-        g_object_unref (resolver);
     }
 
     g_free (host);