[SCM] Samba Shared Repository - branch master updated

Günther Deschner gd at samba.org
Wed Jan 27 03:24:43 MST 2010


The branch, master has been updated
       via  098fc8c... s4:torture: refactor querying of domain info out into test_QueryDomainInfo2_level()
       via  0a33b20... s4:torture: create new test_SetDomainInfo_ntstatus()
       via  c1d157a... s4:torture: refactor setting of domain inf out into test_SetDomainInfo()
       via  50a46cf... s4:torture: refactor setting account flags out into test_SetUserInfo_acct_flags()
      from  899bd00... Fix bug #7067 - Linux asynchronous IO (aio) can cause smbd to fail to respond to a read or write.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 098fc8c09c64c9fa37ae70638e3b30340a7ae183
Author: Michael Adam <obnox at samba.org>
Date:   Fri Jan 22 00:47:42 2010 +0100

    s4:torture: refactor querying of domain info out into test_QueryDomainInfo2_level()
    
    Used in several places.
    
    (Note: The _level suffix in the function name is just because
    test_QueryDomainInfo2() already exists as an overall test for all levels.)
    
    Michael
    
    Signed-off-by: Günther Deschner <gd at samba.org>

commit 0a33b20f70506d0a01b4c543ab57ca2488187ee9
Author: Michael Adam <obnox at samba.org>
Date:   Fri Jan 22 00:46:19 2010 +0100

    s4:torture: create new test_SetDomainInfo_ntstatus()
    
    for checking for SetDomainInfo giving a desired return code.
    
    Michael
    
    Signed-off-by: Günther Deschner <gd at samba.org>

commit c1d157a48102c50c72a85b60fba5237436377ffd
Author: Michael Adam <obnox at samba.org>
Date:   Fri Jan 22 00:21:29 2010 +0100

    s4:torture: refactor setting of domain inf out into test_SetDomainInfo()
    
    and use it in several places.
    
    Michael
    
    Signed-off-by: Günther Deschner <gd at samba.org>

commit 50a46cff76e33dc8828c49bf0665afeeb2b7c1eb
Author: Michael Adam <obnox at samba.org>
Date:   Thu Jan 21 23:55:51 2010 +0100

    s4:torture: refactor setting account flags out into test_SetUserInfo_acct_flags()
    
    and use this in four places (enabling/disabling accounts).
    
    Michael
    
    Signed-off-by: Günther Deschner <gd at samba.org>

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

Summary of changes:
 source4/torture/rpc/samr.c |  383 +++++++++++++++++++-------------------------
 1 files changed, 168 insertions(+), 215 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/torture/rpc/samr.c b/source4/torture/rpc/samr.c
index c2b973e..4ab4a2c 100644
--- a/source4/torture/rpc/samr.c
+++ b/source4/torture/rpc/samr.c
@@ -3403,33 +3403,106 @@ static bool test_QueryUserInfo_badpwdcount(struct dcerpc_pipe *p,
 	return true;
 }
 
-static bool test_reset_badpwdcount(struct dcerpc_pipe *p,
-				   struct torture_context *tctx,
-				   struct policy_handle *user_handle,
-				   uint32_t acct_flags,
-				   char **password)
+static bool test_SetUserInfo_acct_flags(struct dcerpc_pipe *p,
+					struct torture_context *tctx,
+					struct policy_handle *user_handle,
+					uint32_t acct_flags)
 {
 	struct samr_SetUserInfo r;
 	union samr_UserInfo user_info;
 
-	torture_assert(tctx, test_SetUserPass(p, tctx, user_handle, password),
-		"failed to set password");
-
-	torture_comment(tctx, "Testing SetUserInfo level 16 (enable account)\n");
+	torture_comment(tctx, "Testing SetUserInfo level 16\n");
 
 	user_info.info16.acct_flags = acct_flags;
-	user_info.info16.acct_flags &= ~ACB_DISABLED;
 
 	r.in.user_handle = user_handle;
 	r.in.level = 16;
 	r.in.info = &user_info;
 
 	torture_assert_ntstatus_ok(tctx, dcerpc_samr_SetUserInfo(p, tctx, &r),
-		"failed to enable user");
+		"failed to set account flags");
 
+	return true;
+}
+
+static bool test_reset_badpwdcount(struct dcerpc_pipe *p,
+				   struct torture_context *tctx,
+				   struct policy_handle *user_handle,
+				   uint32_t acct_flags,
+				   char **password)
+{
 	torture_assert(tctx, test_SetUserPass(p, tctx, user_handle, password),
 		"failed to set password");
 
+	torture_comment(tctx, "Testing SetUserInfo level 16 (enable account)\n");
+
+	torture_assert(tctx,
+		       test_SetUserInfo_acct_flags(p, tctx, user_handle,
+						   acct_flags & ~ACB_DISABLED),
+		       "failed to enable user");
+
+	torture_assert(tctx, test_SetUserPass(p, tctx, user_handle, password),
+		"failed to set password");
+
+	return true;
+}
+
+static bool test_SetDomainInfo(struct dcerpc_pipe *p,
+			       struct torture_context *tctx,
+			       struct policy_handle *domain_handle,
+			       enum samr_DomainInfoClass level,
+			       union samr_DomainInfo *info)
+{
+	struct samr_SetDomainInfo r;
+
+	r.in.domain_handle = domain_handle;
+	r.in.level = level;
+	r.in.info = info;
+
+	torture_assert_ntstatus_ok(tctx,
+				   dcerpc_samr_SetDomainInfo(p, tctx, &r),
+				   "failed to set domain info");
+
+	return true;
+}
+
+static bool test_SetDomainInfo_ntstatus(struct dcerpc_pipe *p,
+					struct torture_context *tctx,
+					struct policy_handle *domain_handle,
+					enum samr_DomainInfoClass level,
+					union samr_DomainInfo *info,
+					NTSTATUS expected)
+{
+	struct samr_SetDomainInfo r;
+
+	r.in.domain_handle = domain_handle;
+	r.in.level = level;
+	r.in.info = info;
+
+	torture_assert_ntstatus_equal(tctx,
+				      dcerpc_samr_SetDomainInfo(p, tctx, &r),
+				      expected,
+				      "");
+
+	return true;
+}
+
+static bool test_QueryDomainInfo2_level(struct dcerpc_pipe *p,
+					struct torture_context *tctx,
+					struct policy_handle *domain_handle,
+					enum samr_DomainInfoClass level,
+					union samr_DomainInfo **q_info)
+{
+	struct samr_QueryDomainInfo2 r;
+
+	r.in.domain_handle = domain_handle;
+	r.in.level = level;
+	r.out.info = q_info;
+
+	torture_assert_ntstatus_ok(tctx,
+		dcerpc_samr_QueryDomainInfo2(p, tctx, &r),
+		"failed to query domain info");
+
 	return true;
 }
 
@@ -3465,36 +3538,20 @@ static bool test_Password_badpwdcount(struct dcerpc_pipe *p,
 	/* set policies */
 
 	info.info1 = *info1;
-
 	info.info1.password_history_length = password_history_length;
 
-	{
-		struct samr_SetDomainInfo r;
-
-		r.in.domain_handle = domain_handle;
-		r.in.level = DomainPasswordInformation;
-		r.in.info = &info;
-
-		torture_assert_ntstatus_ok(tctx,
-			dcerpc_samr_SetDomainInfo(p, tctx, &r),
-			"failed to set domain info level 1");
-	}
+	torture_assert(tctx,
+		       test_SetDomainInfo(p, tctx, domain_handle,
+					  DomainPasswordInformation, &info),
+		       "failed to set password history length");
 
 	info.info12 = *info12;
-
 	info.info12.lockout_threshold = lockout_threshold;
 
-	{
-		struct samr_SetDomainInfo r;
-
-		r.in.domain_handle = domain_handle;
-		r.in.level = DomainLockoutInformation;
-		r.in.info = &info;
-
-		torture_assert_ntstatus_ok(tctx,
-			dcerpc_samr_SetDomainInfo(p, tctx, &r),
-			"failed to set domain info level 12");
-	}
+	torture_assert(tctx,
+		       test_SetDomainInfo(p, tctx, domain_handle,
+					  DomainLockoutInformation, &info),
+		       "failed to set lockout threshold");
 
 	/* reset bad pwd count */
 
@@ -3503,26 +3560,16 @@ static bool test_Password_badpwdcount(struct dcerpc_pipe *p,
 
 
 	/* enable or disable account */
-	{
-		struct samr_SetUserInfo r;
-		union samr_UserInfo user_info;
-
-		torture_comment(tctx, "Testing SetUserInfo level 16 (%s account)\n",
-			disable ? "disable" : "enable");
-
-		user_info.info16.acct_flags = acct_flags;
-		if (disable) {
-			user_info.info16.acct_flags |= ACB_DISABLED;
-		} else {
-			user_info.info16.acct_flags &= ~ACB_DISABLED;
-		}
-
-		r.in.user_handle = user_handle;
-		r.in.level = 16;
-		r.in.info = &user_info;
-
-		torture_assert_ntstatus_ok(tctx, dcerpc_samr_SetUserInfo(p, tctx, &r),
-			"failed to enable user");
+	if (disable) {
+		torture_assert(tctx,
+			       test_SetUserInfo_acct_flags(p, tctx, user_handle,
+						acct_flags | ACB_DISABLED),
+			       "failed to disable user");
+	} else {
+		torture_assert(tctx,
+			       test_SetUserInfo_acct_flags(p, tctx, user_handle,
+						acct_flags & ~ACB_DISABLED),
+			       "failed to enable user");
 	}
 
 
@@ -3701,35 +3748,20 @@ static bool test_Password_badpwdcount_wrap(struct dcerpc_pipe *p,
 
 	/* backup old policies */
 
-	{
-		struct samr_QueryDomainInfo2 r;
-
-		r.in.domain_handle = domain_handle;
-		r.in.level = DomainPasswordInformation;
-		r.out.info = &q_info;
-
-		torture_assert_ntstatus_ok(tctx,
-			dcerpc_samr_QueryDomainInfo2(p, tctx, &r),
-			"failed to query domain info level 1");
-
-		info1 = q_info->info1;
-	}
-
-	{
-		struct samr_QueryDomainInfo2 r;
-
-		r.in.domain_handle = domain_handle;
-		r.in.level = DomainLockoutInformation;
-		r.out.info = &q_info;
+	torture_assert(tctx,
+		test_QueryDomainInfo2_level(p, tctx, domain_handle,
+					    DomainPasswordInformation, &q_info),
+		"failed to query domain info level 1");
 
-		torture_assert_ntstatus_ok(tctx,
-			dcerpc_samr_QueryDomainInfo2(p, tctx, &r),
-			"failed to query domain info level 12");
+	info1 = q_info->info1;
+	_info1 = info1;
 
-		info12 = q_info->info12;
-	}
+	torture_assert(tctx,
+		test_QueryDomainInfo2_level(p, tctx, domain_handle,
+					    DomainLockoutInformation, &q_info),
+		"failed to query domain info level 12");
 
-	_info1 = info1;
+	info12 = q_info->info12;
 	_info12 = info12;
 
 	/* run tests */
@@ -3762,31 +3794,17 @@ static bool test_Password_badpwdcount_wrap(struct dcerpc_pipe *p,
 
 	s_info.info1 = info1;
 
-	{
-		struct samr_SetDomainInfo r;
-
-		r.in.domain_handle = domain_handle;
-		r.in.level = DomainPasswordInformation;
-		r.in.info = &s_info;
-
-		torture_assert_ntstatus_ok(tctx,
-			dcerpc_samr_SetDomainInfo(p, tctx, &r),
-			"failed to set domain info level 1");
-	}
+	torture_assert(tctx,
+		       test_SetDomainInfo(p, tctx, domain_handle,
+					  DomainPasswordInformation, &s_info),
+		       "failed to set password information");
 
 	s_info.info12 = info12;
 
-	{
-		struct samr_SetDomainInfo r;
-
-		r.in.domain_handle = domain_handle;
-		r.in.level = DomainLockoutInformation;
-		r.in.info = &s_info;
-
-		torture_assert_ntstatus_ok(tctx,
-			dcerpc_samr_SetDomainInfo(p, tctx, &r),
-			"failed to set domain info level 12");
-	}
+	torture_assert(tctx,
+		       test_SetDomainInfo(p, tctx, domain_handle,
+					  DomainLockoutInformation, &s_info),
+		       "failed to set lockout information");
 
 	return ret;
 }
@@ -3847,69 +3865,41 @@ static bool test_Password_lockout(struct dcerpc_pipe *p,
 	torture_comment(tctx, "setting password history lenght.\n");
 	info.info1.password_history_length = password_history_length;
 
-	{
-		struct samr_SetDomainInfo r;
-
-		r.in.domain_handle = domain_handle;
-		r.in.level = DomainPasswordInformation;
-		r.in.info = &info;
-
-		torture_assert_ntstatus_ok(tctx,
-			dcerpc_samr_SetDomainInfo(p, tctx, &r),
-			"failed to set domain info level 1");
-	}
+	torture_assert(tctx,
+		       test_SetDomainInfo(p, tctx, domain_handle,
+					  DomainPasswordInformation, &info),
+		       "failed to set password history length");
 
 	info.info12 = *info12;
-
 	info.info12.lockout_threshold = lockout_threshold;
 
 	/* set lockout duration < lockout window: should fail */
 	info.info12.lockout_duration = ~(lockout_seconds * delta_time_factor);
 	info.info12.lockout_window = ~((lockout_seconds + 1) * delta_time_factor);
 
-	{
-		struct samr_SetDomainInfo r;
-
-		r.in.domain_handle = domain_handle;
-		r.in.level = DomainLockoutInformation;
-		r.in.info = &info;
-
-		torture_assert_ntstatus_equal(tctx,
-			dcerpc_samr_SetDomainInfo(p, tctx, &r),
-			NT_STATUS_INVALID_PARAMETER,
-			"succeeded setting lockout duration < lockout window");
-	}
+	torture_assert(tctx,
+		test_SetDomainInfo_ntstatus(p, tctx, domain_handle,
+					    DomainLockoutInformation, &info,
+					    NT_STATUS_INVALID_PARAMETER),
+		"setting lockout duration < lockout window gave unexpected result");
 
 	info.info12.lockout_duration = 0;
 	info.info12.lockout_window = 0;
 
-	{
-		struct samr_SetDomainInfo r;
-
-		r.in.domain_handle = domain_handle;
-		r.in.level = DomainLockoutInformation;
-		r.in.info = &info;
+	torture_assert(tctx,
+		       test_SetDomainInfo(p, tctx, domain_handle,
+					  DomainLockoutInformation, &info),
+		       "failed to set lockout window and duration to 0");
 
-		torture_assert_ntstatus_ok(tctx,
-			dcerpc_samr_SetDomainInfo(p, tctx, &r),
-			"failed to set lockout window and duration to 0");
-	}
 
 	/* set lockout duration of 5 seconds */
 	info.info12.lockout_duration = ~(lockout_seconds * delta_time_factor);
 	info.info12.lockout_window = ~(lockout_seconds * delta_time_factor);
 
-	{
-		struct samr_SetDomainInfo r;
-
-		r.in.domain_handle = domain_handle;
-		r.in.level = DomainLockoutInformation;
-		r.in.info = &info;
-
-		torture_assert_ntstatus_ok(tctx,
-			dcerpc_samr_SetDomainInfo(p, tctx, &r),
-			"failed to set domain info level 12");
-	}
+	torture_assert(tctx,
+		       test_SetDomainInfo(p, tctx, domain_handle,
+					  DomainLockoutInformation, &info),
+		       "failed to set lockout window and duration to 5 seconds");
 
 	/* reset bad pwd count */
 
@@ -3918,28 +3908,20 @@ static bool test_Password_lockout(struct dcerpc_pipe *p,
 
 
 	/* enable or disable account */
-	{
-		struct samr_SetUserInfo r;
-		union samr_UserInfo user_info;
-
-		torture_comment(tctx, "Testing SetUserInfo level 16 (%s account)\n",
-			disable ? "disable" : "enable");
 
-		user_info.info16.acct_flags = acct_flags;
-		if (disable) {
-			user_info.info16.acct_flags |= ACB_DISABLED;
-		} else {
-			user_info.info16.acct_flags &= ~ACB_DISABLED;
-		}
-
-		r.in.user_handle = user_handle;
-		r.in.level = 16;
-		r.in.info = &user_info;
-
-		torture_assert_ntstatus_ok(tctx, dcerpc_samr_SetUserInfo(p, tctx, &r),
-			"failed to enable user");
+	if (disable) {
+		torture_assert(tctx,
+			       test_SetUserInfo_acct_flags(p, tctx, user_handle,
+						acct_flags | ACB_DISABLED),
+			       "failed to disable user");
+	} else {
+		torture_assert(tctx,
+			       test_SetUserInfo_acct_flags(p, tctx, user_handle,
+						acct_flags & ~ACB_DISABLED),
+			       "failed to enable user");
 	}
 
+
 	/* test logon with right password */
 
 	if (!test_SamLogon_with_creds(tctx, np, machine_credentials,
@@ -4085,35 +4067,20 @@ static bool test_Password_lockout_wrap(struct dcerpc_pipe *p,
 
 	/* backup old policies */
 
-	{
-		struct samr_QueryDomainInfo2 r;
-
-		r.in.domain_handle = domain_handle;
-		r.in.level = DomainPasswordInformation;
-		r.out.info = &q_info;
-
-		torture_assert_ntstatus_ok(tctx,
-			dcerpc_samr_QueryDomainInfo2(p, tctx, &r),
-			"failed to query domain info level 1");
-
-		info1 = q_info->info1;
-	}
-
-	{
-		struct samr_QueryDomainInfo2 r;
-
-		r.in.domain_handle = domain_handle;
-		r.in.level = DomainLockoutInformation;
-		r.out.info = &q_info;
+	torture_assert(tctx,
+		test_QueryDomainInfo2_level(p, tctx, domain_handle,
+					    DomainPasswordInformation, &q_info),
+		"failed to query domain info level 1");
 
-		torture_assert_ntstatus_ok(tctx,
-			dcerpc_samr_QueryDomainInfo2(p, tctx, &r),
-			"failed to query domain info level 12");
+	info1 = q_info->info1;
+	_info1 = info1;
 
-		info12 = q_info->info12;
-	}
+	torture_assert(tctx,
+		test_QueryDomainInfo2_level(p, tctx, domain_handle,
+					    DomainLockoutInformation, &q_info),
+		"failed to query domain info level 12");
 
-	_info1 = info1;
+	info12 = q_info->info12;
 	_info12 = info12;
 
 	/* run tests */
@@ -4146,31 +4113,17 @@ static bool test_Password_lockout_wrap(struct dcerpc_pipe *p,
 
 	s_info.info1 = info1;
 
-	{
-		struct samr_SetDomainInfo r;
-
-		r.in.domain_handle = domain_handle;
-		r.in.level = DomainPasswordInformation;
-		r.in.info = &s_info;
-
-		torture_assert_ntstatus_ok(tctx,
-			dcerpc_samr_SetDomainInfo(p, tctx, &r),
-			"failed to set domain info level 1");
-	}
+	torture_assert(tctx,
+		       test_SetDomainInfo(p, tctx, domain_handle,
+					  DomainPasswordInformation, &s_info),
+		       "failed to set password information");
 
 	s_info.info12 = info12;
 
-	{
-		struct samr_SetDomainInfo r;
-
-		r.in.domain_handle = domain_handle;
-		r.in.level = DomainLockoutInformation;
-		r.in.info = &s_info;
-
-		torture_assert_ntstatus_ok(tctx,
-			dcerpc_samr_SetDomainInfo(p, tctx, &r),
-			"failed to set domain info level 12");
-	}
+	torture_assert(tctx,
+		       test_SetDomainInfo(p, tctx, domain_handle,


-- 
Samba Shared Repository


More information about the samba-cvs mailing list