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.
(This used to be commit 1db41ff52565e9f336a22fb9ffd80d51677e023b)

source3/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;
 }