summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2008-05-14 09:42:23 +0200
committerKarolin Seeger <kseeger@samba.org>2008-05-22 20:01:10 +0200
commita051d6dcf69e0979ff922468b87fa1fb2d72608c (patch)
tree615507c9a30673e432b172791f29ab6ea3d71a0d
parent4f257ef7d42cc935f7bd6c5fdefd15ddf4998880 (diff)
downloadsamba-a051d6dcf69e0979ff922468b87fa1fb2d72608c.tar.gz
samba-a051d6dcf69e0979ff922468b87fa1fb2d72608c.tar.xz
samba-a051d6dcf69e0979ff922468b87fa1fb2d72608c.zip
dsgetdcname: In case we didn't get a mailslot reply, don't cache the nodestatus.
Guenther (cherry picked from commit 12e47be02f93e2f41af5772f6a83568b3574d032)
-rw-r--r--source/libsmb/dsgetdcname.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/source/libsmb/dsgetdcname.c b/source/libsmb/dsgetdcname.c
index 30d7c948223..1538502e9ad 100644
--- a/source/libsmb/dsgetdcname.c
+++ b/source/libsmb/dsgetdcname.c
@@ -1223,6 +1223,7 @@ static NTSTATUS process_dc_netbios(TALLOC_CTX *mem_ctx,
const char *dc_name = NULL;
fstring tmp_dc_name;
union nbt_cldap_netlogon *r = NULL;
+ bool store_cache = false;
uint32_t nt_version = NETLOGON_VERSION_1 |
NETLOGON_VERSION_5 |
NETLOGON_VERSION_5EX_WITH_IP;
@@ -1261,6 +1262,7 @@ static NTSTATUS process_dc_netbios(TALLOC_CTX *mem_ctx,
&nt_version,
&dc_name,
&r)) {
+ store_cache = true;
namecache_store(dc_name, NBT_NAME_SERVER, 1, &ip_list);
goto make_reply;
}
@@ -1302,7 +1304,7 @@ static NTSTATUS process_dc_netbios(TALLOC_CTX *mem_ctx,
status = make_dc_info_from_cldap_reply(mem_ctx, flags, &dclist[i].ss,
nt_version, r, info);
- if (NT_STATUS_IS_OK(status)) {
+ if (NT_STATUS_IS_OK(status) && store_cache) {
return store_cldap_reply(mem_ctx, flags, &dclist[i].ss,
nt_version, r);
}