util_sock: Fix memcache bug in get_mydnsfullname.
authorKai Blin <kai@samba.org>
Mon, 21 Jan 2008 12:18:38 +0000 (13:18 +0100)
committerKai Blin <kai@samba.org>
Mon, 21 Jan 2008 12:28:06 +0000 (13:28 +0100)
get_mydnsfullname relied on memcache_add(); memcache_lookup() working.
When run from ntlm_auth, the global_cache variable in memcache is NULL, so
the add and lookup both fail. In that case, just return the result of the
getaddrinfo call.

Jeremy, please check.

source/lib/util_sock.c

index 10428113ae8b4b6d4ab13dcc7478b1f6775ae540..f524d0d82623ce4d32704624c53bdd9827f078e1 100644 (file)
@@ -2080,14 +2080,14 @@ const char *get_mydnsfullname(void)
                        data_blob_string_const("get_mydnsfullname"),
                        data_blob_string_const(res->ai_canonname));
 
-       freeaddrinfo(res);
-
        if (!memcache_lookup(NULL, SINGLETON_CACHE,
                        data_blob_string_const("get_mydnsfullname"),
                        &tmp)) {
-               return NULL;
+               tmp = data_blob_string_const(res->ai_canonname);
        }
 
+       freeaddrinfo(res);
+
        return (const char *)tmp.data;
 }