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

Volker Lendecke vlendec at samba.org
Thu Apr 10 09:53:41 GMT 2008


The branch, v3-2-test has been updated
       via  79bc6796b81395d591fc6ef389f153dd981fe68b (commit)
      from  b865b8a79afd8f3b43bb3adcdcbcbca623dc76a2 (commit)

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


- Log -----------------------------------------------------------------
commit 79bc6796b81395d591fc6ef389f153dd981fe68b
Author: Volker Lendecke <vl at samba.org>
Date:   Thu Apr 10 11:52:44 2008 +0200

    Also accept 0x15 getdc replies
    
    My NT4SP6 which my DC here trusts sends 0x15 instead of 0x13, from looking at
    the sniff at least the DC name is at the same place.

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

Summary of changes:
 source/winbindd/winbindd_cm.c |   41 ++++++++++++++++++++++-------------------
 1 files changed, 22 insertions(+), 19 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/winbindd/winbindd_cm.c b/source/winbindd/winbindd_cm.c
index 8026186..8e275b2 100644
--- a/source/winbindd/winbindd_cm.c
+++ b/source/winbindd/winbindd_cm.c
@@ -1145,28 +1145,31 @@ static bool receive_getdc_response(struct sockaddr_storage *dc_ss,
 	/* This should be (buf-4)+SVAL(buf-4, smb_vwv12)... */
 	p = buf+SVAL(buf, smb_vwv10);
 
-	if (CVAL(p,0) != SAMLOGON_R) {
-		DEBUG(8, ("GetDC got invalid response type %d\n", CVAL(p, 0)));
-		return False;
-	}
+	switch (CVAL(p, 0)) {
+	case SAMLOGON_R:
+	case SAMLOGON_UNK_R:
+		p+=2;
+		pull_ucs2(buf, dcname, p, sizeof(dcname), PTR_DIFF(buf+len, p),
+			  STR_TERMINATE|STR_NOALIGN);
+		p = skip_unibuf(p, PTR_DIFF(buf+len, p));
+		pull_ucs2(buf, user, p, sizeof(user), PTR_DIFF(buf+len, p),
+			  STR_TERMINATE|STR_NOALIGN);
+		p = skip_unibuf(p, PTR_DIFF(buf+len, p));
+		pull_ucs2(buf, domain, p, sizeof(domain), PTR_DIFF(buf+len, p),
+			  STR_TERMINATE|STR_NOALIGN);
+		p = skip_unibuf(p, PTR_DIFF(buf+len, p));
+
+		if (!strequal(domain, domain_name)) {
+			DEBUG(3, ("GetDC: Expected domain %s, got %s\n",
+				  domain_name, domain));
+			return False;
+		}
+		break;
 
-	p+=2;
-	pull_ucs2(buf, dcname, p, sizeof(dcname), PTR_DIFF(buf+len, p),
-		  STR_TERMINATE|STR_NOALIGN);
-	p = skip_unibuf(p, PTR_DIFF(buf+len, p));
-	pull_ucs2(buf, user, p, sizeof(dcname), PTR_DIFF(buf+len, p),
-		  STR_TERMINATE|STR_NOALIGN);
-	p = skip_unibuf(p, PTR_DIFF(buf+len, p));
-	pull_ucs2(buf, domain, p, sizeof(dcname), PTR_DIFF(buf+len, p),
-		  STR_TERMINATE|STR_NOALIGN);
-	p = skip_unibuf(p, PTR_DIFF(buf+len, p));
-
-	if (!strequal(domain, domain_name)) {
-		DEBUG(3, ("GetDC: Expected domain %s, got %s\n",
-			  domain_name, domain));
+	default:
+		DEBUG(8, ("GetDC got invalid response type %d\n", CVAL(p, 0)));
 		return False;
 	}
-
 	p = dcname;
 	if (*p == '\\')	p += 1;
 	if (*p == '\\')	p += 1;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list