svn commit: samba r6776 - in branches/SAMBA_4_0/source/torture/ldap: .

tridge at samba.org tridge at samba.org
Fri May 13 11:56:37 GMT 2005


Author: tridge
Date: 2005-05-13 11:56:36 +0000 (Fri, 13 May 2005)
New Revision: 6776

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=6776

Log:
make the cldap torture test not dependent on the realm being set
correctly - it gets the realm from an initial no-attribute search


Modified:
   branches/SAMBA_4_0/source/torture/ldap/cldap.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/ldap/cldap.c
===================================================================
--- branches/SAMBA_4_0/source/torture/ldap/cldap.c	2005-05-13 09:21:37 UTC (rev 6775)
+++ branches/SAMBA_4_0/source/torture/ldap/cldap.c	2005-05-13 11:56:36 UTC (rev 6776)
@@ -42,20 +42,29 @@
 {
 	struct cldap_socket *cldap = cldap_socket_init(mem_ctx, NULL);
 	NTSTATUS status;
-	struct cldap_netlogon search;
+	struct cldap_netlogon search, empty_search;
 	union nbt_cldap_netlogon n1;
 	struct GUID guid;
 	int i;
 	BOOL ret = True;
 
+	ZERO_STRUCT(search);
 	search.in.dest_address = dest;
-	search.in.realm        = lp_realm();
-	search.in.host         = lp_netbios_name();
-	search.in.user         = NULL;
-	search.in.domain_guid  = NULL;
-	search.in.domain_sid   = NULL;
 	search.in.acct_control = -1;
+	search.in.version = 6;
 
+	empty_search = search;
+
+	printf("Trying without any attributes\n");
+	search = empty_search;
+	status = cldap_netlogon(cldap, mem_ctx, &search);
+	CHECK_STATUS(status, NT_STATUS_OK);
+
+	n1 = search.out.netlogon;
+
+	search.in.realm        = n1.logon4.dns_domain;
+	search.in.host         = "__cldap_torture__";
+
 	printf("Scanning for netlogon levels\n");
 	for (i=0;i<256;i++) {
 		search.in.version = i;
@@ -68,10 +77,21 @@
 		}
 	}
 
+	printf("Scanning for netlogon level bits\n");
+	for (i=0;i<31;i++) {
+		search.in.version = (1<<i);
+		printf("Trying netlogon level 0x%x\n", i);
+		status = cldap_netlogon(cldap, mem_ctx, &search);
+		CHECK_STATUS(status, NT_STATUS_OK);
+		if (DEBUGLVL(10)) {
+			NDR_PRINT_UNION_DEBUG(nbt_cldap_netlogon, i & 0xF, 
+					      &search.out.netlogon);
+		}
+	}
+
 	search.in.version = 6;
 	status = cldap_netlogon(cldap, mem_ctx, &search);
 	CHECK_STATUS(status, NT_STATUS_OK);
-	n1 = search.out.netlogon;
 
 	printf("Trying with User=Administrator\n");
 
@@ -92,44 +112,51 @@
 	status = cldap_netlogon(cldap, mem_ctx, &search);
 	CHECK_STATUS(status, NT_STATUS_NOT_FOUND);
 
-	printf("Trying with a incorrect domain and correct guid\n");
-	search.in.realm       = "test.example.com";
-	search.in.domain_guid = GUID_string(mem_ctx, &n1.logon4.domain_uuid);
-	status = cldap_netlogon(cldap, mem_ctx, &search);
-	CHECK_STATUS(status, NT_STATUS_OK);
-
-	printf("Trying with a incorrect domain and incorrect guid\n");
-	search.in.realm       = "test.example.com";
-	search.in.domain_guid = GUID_string(mem_ctx, &guid);
-	status = cldap_netlogon(cldap, mem_ctx, &search);
-	CHECK_STATUS(status, NT_STATUS_NOT_FOUND);
-
 	printf("Trying with a AAC\n");
 	search.in.acct_control = 0x180;
-	search.in.realm = lp_realm();
+	search.in.realm = n1.logon4.dns_domain;
 	status = cldap_netlogon(cldap, mem_ctx, &search);
 	CHECK_STATUS(status, NT_STATUS_OK);
 
 	printf("Trying with a bad AAC\n");
 	search.in.acct_control = 0xFF00FF00;
-	search.in.realm = lp_realm();
+	search.in.realm = n1.logon4.dns_domain;
 	status = cldap_netlogon(cldap, mem_ctx, &search);
 	CHECK_STATUS(status, NT_STATUS_OK);
 
 	printf("Trying with a user only\n");
-	search.in.acct_control = -1;
+	search = empty_search;
 	search.in.user = "Administrator";
-	search.in.realm = NULL;
-	search.in.domain_guid = NULL;
 	status = cldap_netlogon(cldap, mem_ctx, &search);
 	CHECK_STATUS(status, NT_STATUS_OK);
 
-	printf("Trying without any attributes\n");
-	search.in.user = NULL;
-	search.in.host = NULL;
+	printf("Trying with just a bad username\n");
+	search.in.user = "___no_such_user___";
 	status = cldap_netlogon(cldap, mem_ctx, &search);
 	CHECK_STATUS(status, NT_STATUS_OK);
 
+	printf("Trying with just a bad domain\n");
+	search = empty_search;
+	search.in.realm = "___no_such_domain___";
+	status = cldap_netlogon(cldap, mem_ctx, &search);
+	CHECK_STATUS(status, NT_STATUS_NOT_FOUND);
+
+	printf("Trying with a incorrect domain and correct guid\n");
+	search.in.domain_guid = GUID_string(mem_ctx, &n1.logon4.domain_uuid);
+	status = cldap_netlogon(cldap, mem_ctx, &search);
+	CHECK_STATUS(status, NT_STATUS_OK);
+
+	printf("Trying with a incorrect domain and incorrect guid\n");
+	search.in.domain_guid = GUID_string(mem_ctx, &guid);
+	status = cldap_netlogon(cldap, mem_ctx, &search);
+	CHECK_STATUS(status, NT_STATUS_NOT_FOUND);
+
+	printf("Trying with a incorrect GUID and correct domain\n");
+	search.in.domain_guid = GUID_string(mem_ctx, &guid);
+	search.in.realm = n1.logon4.dns_domain;
+	status = cldap_netlogon(cldap, mem_ctx, &search);
+	CHECK_STATUS(status, NT_STATUS_OK);
+
 done:
 	return ret;	
 }



More information about the samba-cvs mailing list