[SCM] Samba Shared Repository - branch v3-3-test updated - release-3-2-0pre2-2430-g12e47be

Günther Deschner gd at samba.org
Wed May 14 07:46:55 GMT 2008


The branch, v3-3-test has been updated
       via  12e47be02f93e2f41af5772f6a83568b3574d032 (commit)
       via  836877c4005ba081c0a4cc97726830d6dbd62d34 (commit)
      from  c84d49429191423a81d558042fe949c26f5de5fe (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test


- Log -----------------------------------------------------------------
commit 12e47be02f93e2f41af5772f6a83568b3574d032
Author: Günther Deschner <gd at samba.org>
Date:   Wed May 14 09:42:23 2008 +0200

    dsgetdcname: In case we didn't get a mailslot reply, don't cache the nodestatus.
    
    Guenther

commit 836877c4005ba081c0a4cc97726830d6dbd62d34
Author: Günther Deschner <gd at samba.org>
Date:   Wed May 14 09:41:24 2008 +0200

    mailslot: Also pick domain name and pdc name from type 15 cldap reply.
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 source/libsmb/clidgram.c    |   23 ++++++++++++++++++++++-
 source/libsmb/dsgetdcname.c |    4 +++-
 2 files changed, 25 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/libsmb/clidgram.c b/source/libsmb/clidgram.c
index 367b028..8b35a69 100644
--- a/source/libsmb/clidgram.c
+++ b/source/libsmb/clidgram.c
@@ -274,11 +274,16 @@ bool receive_getdc_response(TALLOC_CTX *mem_ctx,
 
 	switch (*nt_version) {
 		case 1:
+		case 16:
+		case 17:
+
 			returned_domain = r.logon1.domain_name;
 			returned_dc = r.logon1.pdc_name;
 			break;
 		case 2:
 		case 3:
+		case 18:
+		case 19:
 			returned_domain = r.logon3.domain_name;
 			returned_dc = r.logon3.pdc_name;
 			break;
@@ -300,10 +305,26 @@ bool receive_getdc_response(TALLOC_CTX *mem_ctx,
 			returned_domain = r.logon13.domain;
 			returned_dc = r.logon13.pdc_name;
 			break;
-		default:
+		case 20:
+		case 21:
+		case 22:
+		case 23:
+		case 24:
+		case 25:
+		case 26:
+		case 27:
+		case 28:
+			returned_domain = r.logon15.domain;
+			returned_dc = r.logon15.pdc_name;
+			break;
+		case 29:
+		case 30:
+		case 31:
 			returned_domain = r.logon29.domain;
 			returned_dc = r.logon29.pdc_name;
 			break;
+		default:
+			return false;
 	}
 
 	if (!strequal(returned_domain, domain_name)) {
diff --git a/source/libsmb/dsgetdcname.c b/source/libsmb/dsgetdcname.c
index 30d7c94..1538502 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);
 	}


-- 
Samba Shared Repository


More information about the samba-cvs mailing list