[SCM] Samba Shared Repository - branch v4-0-test updated - release-4-0-0alpha2-908-gd0dfdab

Jelmer Vernooij jelmer at samba.org
Tue Feb 19 13:32:39 GMT 2008


The branch, v4-0-test has been updated
       via  d0dfdab85ac751c62b0a6d6e6b1ff128940098ed (commit)
       via  cebb68440540114531e89b774d7437d1d05a1b56 (commit)
       via  b3d084170e01fc678f9be6c280c52763ead52959 (commit)
       via  e6751a3ca40d968f084642229845a729bd916222 (commit)
      from  8238415f3cf2d48601dd3102edfa2c438155f49a (commit)

http://gitweb.samba.org/?samba.git;a=shortlog;h=v4-0-test


- Log -----------------------------------------------------------------
commit d0dfdab85ac751c62b0a6d6e6b1ff128940098ed
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Tue Feb 19 14:25:20 2008 +0100

    Fix accidently introduced bug - thanks metze.

commit cebb68440540114531e89b774d7437d1d05a1b56
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Tue Feb 19 14:13:27 2008 +0100

    No longer ignore torture/util.h; it's static now.

commit b3d084170e01fc678f9be6c280c52763ead52959
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Tue Feb 19 14:13:14 2008 +0100

    samba3rpc: Remove use of global_loadparm.

commit e6751a3ca40d968f084642229845a729bd916222
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Tue Feb 19 14:12:05 2008 +0100

    Avoid use of global_loadparm.

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

Summary of changes:
 .gitignore                       |    1 -
 source/dsdb/schema/schema_init.c |    2 +-
 source/torture/rpc/samba3rpc.c   |   73 ++++++++++++++++++++++----------------
 source/torture/rpc/samsync.c     |   13 ++++---
 4 files changed, 50 insertions(+), 39 deletions(-)


Changeset truncated at 500 lines:

diff --git a/.gitignore b/.gitignore
index b0786b6..6076ddc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -115,7 +115,6 @@ source/smb_server/smb2/smb2_proto.h
 source/smbd/process_model_proto.h
 source/smbd/service_proto.h
 source/torture/proto.h
-source/torture/util.h
 source/torture/auth/proto.h
 source/torture/basic/proto.h
 source/torture/ldap/proto.h
diff --git a/source/dsdb/schema/schema_init.c b/source/dsdb/schema/schema_init.c
index bec6d5d..30d0ade 100644
--- a/source/dsdb/schema/schema_init.c
+++ b/source/dsdb/schema/schema_init.c
@@ -1155,7 +1155,7 @@ WERROR dsdb_attach_schema_from_ldif_file(struct ldb_context *ldb, const char *pf
 		goto nomem;
 	}
 
-	schema->iconv_convenience = ldb_get_opaque(ldb, "loadparm");
+	schema->iconv_convenience = lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm"));
 
 	/*
 	 * load the prefixMap attribute from pf
diff --git a/source/torture/rpc/samba3rpc.c b/source/torture/rpc/samba3rpc.c
index b08cd05..779a28e 100644
--- a/source/torture/rpc/samba3rpc.c
+++ b/source/torture/rpc/samba3rpc.c
@@ -806,6 +806,7 @@ static bool join3(struct smbcli_state *cli,
  */
 
 static bool auth2(struct smbcli_state *cli,
+		  struct loadparm_context *lp_ctx,
 		  struct cli_credentials *wks_cred)
 {
 	TALLOC_CTX *mem_ctx;
@@ -829,7 +830,7 @@ static bool auth2(struct smbcli_state *cli,
 
 	net_pipe = dcerpc_pipe_init(mem_ctx,
 				    cli->transport->socket->event.ctx,
-				    lp_iconv_convenience(global_loadparm));
+				    lp_iconv_convenience(lp_ctx));
 	if (net_pipe == NULL) {
 		d_printf("dcerpc_pipe_init failed\n");
 		goto done;
@@ -1204,7 +1205,7 @@ bool torture_netlogon_samba3(struct torture_context *torture)
 
 		int j;
 
-		if (!auth2(cli, wks_creds)) {
+		if (!auth2(cli, torture->lp_ctx, wks_creds)) {
 			d_printf("auth2 failed\n");
 			goto done;
 		}
@@ -1283,7 +1284,7 @@ static bool test_join3(struct torture_context *tctx,
 		cmdline_credentials, cli_credentials_get_domain(wks_creds),
 		CRED_SPECIFIED);
 
-	if (!auth2(cli, wks_creds)) {
+	if (!auth2(cli, tctx->lp_ctx, wks_creds)) {
 		d_printf("auth2 failed\n");
 		goto done;
 	}
@@ -1381,6 +1382,7 @@ bool torture_samba3_sessionkey(struct torture_context *torture)
  */
 
 static NTSTATUS pipe_bind_smb(TALLOC_CTX *mem_ctx,
+			      struct loadparm_context *lp_ctx,
 			      struct smbcli_tree *tree,
 			      const char *pipe_name,
 			      const struct ndr_interface_table *iface,
@@ -1391,7 +1393,7 @@ static NTSTATUS pipe_bind_smb(TALLOC_CTX *mem_ctx,
 
 	if (!(result = dcerpc_pipe_init(
 		      mem_ctx, tree->session->transport->socket->event.ctx, 
-		      lp_iconv_convenience(global_loadparm)))) {
+		      lp_iconv_convenience(lp_ctx)))) {
 		return NT_STATUS_NO_MEMORY;
 	}
 
@@ -1507,7 +1509,9 @@ static struct dom_sid *name2sid(TALLOC_CTX *mem_ctx,
  * Find out the user SID on this connection
  */
 
-static struct dom_sid *whoami(TALLOC_CTX *mem_ctx, struct smbcli_tree *tree)
+static struct dom_sid *whoami(TALLOC_CTX *mem_ctx, 
+			      struct loadparm_context *lp_ctx, 
+			      struct smbcli_tree *tree)
 {
 	struct dcerpc_pipe *lsa;
 	struct lsa_GetUserName r;
@@ -1515,7 +1519,7 @@ static struct dom_sid *whoami(TALLOC_CTX *mem_ctx, struct smbcli_tree *tree)
 	struct lsa_StringPointer authority_name_p;
 	struct dom_sid *result;
 
-	status = pipe_bind_smb(mem_ctx, tree, "\\pipe\\lsarpc",
+	status = pipe_bind_smb(mem_ctx, lp_ctx, tree, "\\pipe\\lsarpc",
 			       &ndr_table_lsarpc, &lsa);
 	if (!NT_STATUS_IS_OK(status)) {
 		d_printf("(%s) Could not bind to LSA: %s\n",
@@ -1631,7 +1635,7 @@ bool torture_samba3_rpc_getusername(struct torture_context *torture)
 		goto done;
 	}
 
-	if (!(user_sid = whoami(mem_ctx, cli->tree))) {
+	if (!(user_sid = whoami(mem_ctx, torture->lp_ctx, cli->tree))) {
 		d_printf("(%s) whoami on auth'ed connection failed\n",
 			 __location__);
 		ret = false;
@@ -1658,7 +1662,7 @@ bool torture_samba3_rpc_getusername(struct torture_context *torture)
 		goto done;
 	}
 
-	if (!(user_sid = whoami(mem_ctx, cli->tree))) {
+	if (!(user_sid = whoami(mem_ctx, torture->lp_ctx, cli->tree))) {
 		d_printf("(%s) whoami on anon connection failed\n",
 			 __location__);
 		ret = false;
@@ -1732,7 +1736,7 @@ bool torture_samba3_rpc_getusername(struct torture_context *torture)
 			goto done;
 		}
 
-		if (!(user_sid = whoami(mem_ctx, tree))) {
+		if (!(user_sid = whoami(mem_ctx, torture->lp_ctx, tree))) {
 			d_printf("(%s) whoami on user connection failed\n",
 				 __location__);
 			ret = false;
@@ -1870,8 +1874,8 @@ bool torture_samba3_rpc_srvsvc(struct torture_context *torture)
 		return false;
 	}
 
-	status = pipe_bind_smb(mem_ctx, cli->tree, "\\pipe\\srvsvc",
-			       &ndr_table_srvsvc, &p);
+	status = pipe_bind_smb(mem_ctx, torture->lp_ctx, cli->tree, 
+			       "\\pipe\\srvsvc", &ndr_table_srvsvc, &p);
 	if (!NT_STATUS_IS_OK(status)) {
 		d_printf("(%s) could not bind to srvsvc pipe: %s\n",
 			 __location__, nt_errstr(status));
@@ -2007,6 +2011,7 @@ bool torture_samba3_rpc_randomauth2(struct torture_context *torture)
 }
 
 static struct security_descriptor *get_sharesec(TALLOC_CTX *mem_ctx,
+						struct loadparm_context *lp_ctx,
 						struct smbcli_session *sess,
 						const char *sharename)
 {
@@ -2028,7 +2033,7 @@ static struct security_descriptor *get_sharesec(TALLOC_CTX *mem_ctx,
 		return NULL;
 	}
 
-	status = pipe_bind_smb(mem_ctx, tree, "\\pipe\\srvsvc",
+	status = pipe_bind_smb(mem_ctx, lp_ctx, tree, "\\pipe\\srvsvc",
 			       &ndr_table_srvsvc, &p);
 	if (!NT_STATUS_IS_OK(status)) {
 		d_printf("(%s) could not bind to srvsvc pipe: %s\n",
@@ -2060,6 +2065,7 @@ static struct security_descriptor *get_sharesec(TALLOC_CTX *mem_ctx,
 }
 
 static NTSTATUS set_sharesec(TALLOC_CTX *mem_ctx,
+			     struct loadparm_context *lp_ctx,
 			     struct smbcli_session *sess,
 			     const char *sharename,
 			     struct security_descriptor *sd)
@@ -2083,7 +2089,7 @@ static NTSTATUS set_sharesec(TALLOC_CTX *mem_ctx,
 		return NT_STATUS_UNSUCCESSFUL;
 	}
 
-	status = pipe_bind_smb(mem_ctx, tree, "\\pipe\\srvsvc",
+	status = pipe_bind_smb(mem_ctx, lp_ctx, tree, "\\pipe\\srvsvc",
 			       &ndr_table_srvsvc, &p);
 	if (!NT_STATUS_IS_OK(status)) {
 		d_printf("(%s) could not bind to srvsvc pipe: %s\n",
@@ -2115,6 +2121,7 @@ static NTSTATUS set_sharesec(TALLOC_CTX *mem_ctx,
 }
 
 bool try_tcon(TALLOC_CTX *mem_ctx,
+	      struct loadparm_context *lp_ctx,
 	      struct security_descriptor *orig_sd,
 	      struct smbcli_session *session,
 	      const char *sharename, const struct dom_sid *user_sid,
@@ -2162,7 +2169,7 @@ bool try_tcon(TALLOC_CTX *mem_ctx,
                 return false;
         }
 
-	status = set_sharesec(mem_ctx, session, sharename, sd);
+	status = set_sharesec(mem_ctx, lp_ctx, session, sharename, sd);
 	if (!NT_STATUS_IS_OK(status)) {
 		d_printf("custom set_sharesec failed: %s\n",
 			 nt_errstr(status));
@@ -2193,7 +2200,7 @@ bool try_tcon(TALLOC_CTX *mem_ctx,
  done:
 	smbcli_rmdir(rmdir_tree, "sharesec_testdir");
 
-	status = set_sharesec(mem_ctx, session, sharename, orig_sd);
+	status = set_sharesec(mem_ctx, lp_ctx, session, sharename, orig_sd);
 	if (!NT_STATUS_IS_OK(status)) {
 		d_printf("custom set_sharesec failed: %s\n",
 			 nt_errstr(status));
@@ -2225,25 +2232,25 @@ bool torture_samba3_rpc_sharesec(struct torture_context *torture)
 		return false;
 	}
 
-	if (!(user_sid = whoami(mem_ctx, cli->tree))) {
+	if (!(user_sid = whoami(mem_ctx, torture->lp_ctx, cli->tree))) {
 		d_printf("whoami failed\n");
 		talloc_free(mem_ctx);
 		return false;
 	}
 
-	sd = get_sharesec(mem_ctx, cli->session, torture_setting_string(torture,
-								"share", NULL));
+	sd = get_sharesec(mem_ctx, torture->lp_ctx, cli->session, 
+			  torture_setting_string(torture, "share", NULL));
 
-	ret &= try_tcon(mem_ctx, sd, cli->session,
+	ret &= try_tcon(mem_ctx, torture->lp_ctx, sd, cli->session,
 			torture_setting_string(torture, "share", NULL),
 			user_sid, 0, NT_STATUS_ACCESS_DENIED, NT_STATUS_OK);
 
-	ret &= try_tcon(mem_ctx, sd, cli->session,
+	ret &= try_tcon(mem_ctx, torture->lp_ctx, sd, cli->session,
 			torture_setting_string(torture, "share", NULL),
 			user_sid, SEC_FILE_READ_DATA, NT_STATUS_OK,
 			NT_STATUS_MEDIA_WRITE_PROTECTED);
 
-	ret &= try_tcon(mem_ctx, sd, cli->session,
+	ret &= try_tcon(mem_ctx, torture->lp_ctx, sd, cli->session,
 			torture_setting_string(torture, "share", NULL),
 			user_sid, SEC_FILE_ALL, NT_STATUS_OK, NT_STATUS_OK);
 
@@ -2273,7 +2280,7 @@ bool torture_samba3_rpc_lsa(struct torture_context *torture)
 		return false;
 	}
 
-	status = pipe_bind_smb(mem_ctx, cli->tree, "\\lsarpc",
+	status = pipe_bind_smb(mem_ctx, torture->lp_ctx, cli->tree, "\\lsarpc",
 			       &ndr_table_lsarpc, &p);
 	if (!NT_STATUS_IS_OK(status)) {
 		d_printf("(%s) pipe_bind_smb failed: %s\n", __location__,
@@ -2356,7 +2363,8 @@ static NTSTATUS get_servername(TALLOC_CTX *mem_ctx, struct smbcli_tree *tree,
 }
 
 
-static NTSTATUS find_printers(TALLOC_CTX *ctx, struct smbcli_tree *tree,
+static NTSTATUS find_printers(TALLOC_CTX *ctx, struct loadparm_context *lp_ctx,
+			      struct smbcli_tree *tree,
 			      const char ***printers, int *num_printers)
 {
 	TALLOC_CTX *mem_ctx;
@@ -2372,7 +2380,8 @@ static NTSTATUS find_printers(TALLOC_CTX *ctx, struct smbcli_tree *tree,
 		return NT_STATUS_NO_MEMORY;
 	}
 
-	status = pipe_bind_smb(mem_ctx, tree, "\\srvsvc", &ndr_table_srvsvc,
+	status = pipe_bind_smb(mem_ctx, lp_ctx, 
+			       tree, "\\srvsvc", &ndr_table_srvsvc,
 			       &p);
 	if (!NT_STATUS_IS_OK(status)) {
 		d_printf("could not bind to srvsvc pipe\n");
@@ -2560,7 +2569,7 @@ bool torture_samba3_rpc_spoolss(struct torture_context *torture)
 		return false;
 	}
 
-	if (!NT_STATUS_IS_OK(find_printers(mem_ctx, cli->tree,
+	if (!NT_STATUS_IS_OK(find_printers(mem_ctx, torture->lp_ctx, cli->tree,
 					   &printers, &num_printers))) {
 		talloc_free(mem_ctx);
 		return false;
@@ -2572,7 +2581,7 @@ bool torture_samba3_rpc_spoolss(struct torture_context *torture)
 		return true;
 	}
 
-	status = pipe_bind_smb(mem_ctx, cli->tree, "\\spoolss",
+	status = pipe_bind_smb(mem_ctx, torture->lp_ctx, cli->tree, "\\spoolss",
 			       &ndr_table_spoolss, &p);
 	if (!NT_STATUS_IS_OK(status)) {
 		d_printf("(%s) pipe_bind_smb failed: %s\n", __location__,
@@ -2746,7 +2755,7 @@ bool torture_samba3_rpc_wkssvc(struct torture_context *torture)
 		return false;
 	}
 
-	status = pipe_bind_smb(mem_ctx, cli->tree, "\\wkssvc",
+	status = pipe_bind_smb(mem_ctx, torture->lp_ctx, cli->tree, "\\wkssvc",
 			       &ndr_table_wkssvc, &p);
 	if (!NT_STATUS_IS_OK(status)) {
 		d_printf("(%s) pipe_bind_smb failed: %s\n", __location__,
@@ -2995,6 +3004,7 @@ bool torture_samba3_rpc_winreg(struct torture_context *torture)
 }
 
 static NTSTATUS get_shareinfo(TALLOC_CTX *mem_ctx,
+			      struct loadparm_context *lp_ctx,
 			      struct smbcli_state *cli,
 			      const char *share,
 			      struct srvsvc_NetShareInfo502 **info)
@@ -3006,7 +3016,7 @@ static NTSTATUS get_shareinfo(TALLOC_CTX *mem_ctx,
 
 	if (!(p = dcerpc_pipe_init(cli,
 				   cli->transport->socket->event.ctx,
-				   lp_iconv_convenience(global_loadparm)))) {
+				   lp_iconv_convenience(lp_ctx)))) {
 		status = NT_STATUS_NO_MEMORY;
 		goto fail;
 	}
@@ -3176,7 +3186,8 @@ static NTSTATUS torture_samba3_createshare(struct smbcli_state *cli,
 	return status;
 }
 
-static NTSTATUS torture_samba3_deleteshare(struct smbcli_state *cli,
+static NTSTATUS torture_samba3_deleteshare(struct torture_context *torture,
+					   struct smbcli_state *cli,
 					   const char *sharename)
 {
 	struct dcerpc_pipe *p;
@@ -3301,7 +3312,7 @@ bool torture_samba3_regconfig(struct torture_context *torture)
 		goto done;
 	}
 
-	status = get_shareinfo(torture, cli, "blubber", &i);
+	status = get_shareinfo(torture, torture->lp_ctx, cli, "blubber", &i);
 	if (!NT_STATUS_IS_OK(status)) {
 		torture_warning(torture, "get_shareinfo failed: "
 				"%s\n", nt_errstr(status));
@@ -3314,7 +3325,7 @@ bool torture_samba3_regconfig(struct torture_context *torture)
 		goto done;
 	}
 
-	status = torture_samba3_deleteshare(cli, "blubber");
+	status = torture_samba3_deleteshare(torture, cli, "blubber");
 	if (!NT_STATUS_IS_OK(status)) {
 		torture_warning(torture, "torture_samba3_deleteshare failed: "
 				"%s\n", nt_errstr(status));
diff --git a/source/torture/rpc/samsync.c b/source/torture/rpc/samsync.c
index 1f7f9f4..865ebf9 100644
--- a/source/torture/rpc/samsync.c
+++ b/source/torture/rpc/samsync.c
@@ -398,7 +398,7 @@ static bool samsync_handle_policy(TALLOC_CTX *mem_ctx, struct samsync_state *sam
 	return true;
 }
 
-static bool samsync_handle_user(TALLOC_CTX *mem_ctx, struct samsync_state *samsync_state,
+static bool samsync_handle_user(struct torture_context *tctx, TALLOC_CTX *mem_ctx, struct samsync_state *samsync_state,
 				int database_id, struct netr_DELTA_ENUM *delta) 
 {
 	uint32_t rid = delta->delta_id_union.rid;
@@ -548,7 +548,7 @@ static bool samsync_handle_user(TALLOC_CTX *mem_ctx, struct samsync_state *samsy
 		data.data = user->user_private_info.SensitiveData;
 		data.length = user->user_private_info.DataLength;
 		creds_arcfour_crypt(samsync_state->creds, data.data, data.length);
-		ndr_err = ndr_pull_struct_blob(&data, mem_ctx, lp_iconv_convenience(global_loadparm), &keys, (ndr_pull_flags_fn_t)ndr_pull_netr_USER_KEYS);
+		ndr_err = ndr_pull_struct_blob(&data, mem_ctx, lp_iconv_convenience(tctx->lp_ctx), &keys, (ndr_pull_flags_fn_t)ndr_pull_netr_USER_KEYS);
 		if (NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
 			if (keys.keys.keys2.lmpassword.length == 16) {
 				sam_rid_crypt(rid, keys.keys.keys2.lmpassword.pwd.hash, lm_hash.hash, 0);
@@ -1101,8 +1101,9 @@ static bool samsync_handle_account(TALLOC_CTX *mem_ctx, struct samsync_state *sa
 /*
   try a netlogon DatabaseSync
 */
-static bool test_DatabaseSync(struct samsync_state *samsync_state,
-			      TALLOC_CTX *mem_ctx)
+static bool test_DatabaseSync(struct torture_context *tctx, 
+							  struct samsync_state *samsync_state,
+							  TALLOC_CTX *mem_ctx)
 {
 	NTSTATUS status;
 	TALLOC_CTX *loop_ctx, *delta_ctx, *trustdom_ctx;
@@ -1162,7 +1163,7 @@ static bool test_DatabaseSync(struct samsync_state *samsync_state,
 					}
 					break;
 				case NETR_DELTA_USER:
-					if (!samsync_handle_user(delta_ctx, samsync_state, 
+					if (!samsync_handle_user(tctx, delta_ctx, samsync_state, 
 								 r.in.database_id, &r.out.delta_enum_array->delta_enum[d])) {
 						printf("Failed to handle DELTA_USER\n");
 						ret = false;
@@ -1611,7 +1612,7 @@ bool torture_rpc_samsync(struct torture_context *torture)
 		ret = false;
 	}
 
-	if (!test_DatabaseSync(samsync_state, mem_ctx)) {
+	if (!test_DatabaseSync(torture, samsync_state, mem_ctx)) {
 		printf("DatabaseSync failed\n");
 		ret = false;
 	}


-- 
Samba Shared Repository


More information about the samba-cvs mailing list