[SCM] Samba Shared Repository - branch master updated

Stefan Metzmacher metze at samba.org
Tue Jan 26 08:56:51 MST 2010


The branch, master has been updated
       via  137fd79... s4:winsrepl.idl: add random interface uuid
       via  601642d... s4:smbtorture: add BASE-BENCH-HOLDOPEN
      from  a0c31ec... mount.cifs: don't allow it to be run as setuid root program

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


- Log -----------------------------------------------------------------
commit 137fd79f445c30b04d443288c03db2b1cc5dcba3
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Jan 26 15:22:09 2010 +0100

    s4:winsrepl.idl: add random interface uuid
    
    This is needed to include the wrepl interface into
    ndrdump.
    
    metze

commit 601642d92369ca9c572e40aa32b5b3b53eeb8dbf
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Jan 26 15:20:57 2010 +0100

    s4:smbtorture: add BASE-BENCH-HOLDOPEN
    
    This is useful for manual performance testing with a large
    number of share mode entries.
    
    metze

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

Summary of changes:
 source4/librpc/idl/winsrepl.idl |    5 ++-
 source4/torture/basic/base.c    |    1 +
 source4/torture/basic/misc.c    |   63 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 68 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/librpc/idl/winsrepl.idl b/source4/librpc/idl/winsrepl.idl
index 0ec05e8..cedc70b 100644
--- a/source4/librpc/idl/winsrepl.idl
+++ b/source4/librpc/idl/winsrepl.idl
@@ -11,7 +11,10 @@
 
 import "nbt.idl";
 
-interface wrepl
+[
+	uuid("915f5653-bac1-431c-97ee-9ffb34526921"),
+	helpstring("WINS Replication PDUs")
+] interface wrepl
 {
 	const int WINS_REPLICATION_PORT = 42;
 
diff --git a/source4/torture/basic/base.c b/source4/torture/basic/base.c
index 2c72257..ed389fb 100644
--- a/source4/torture/basic/base.c
+++ b/source4/torture/basic/base.c
@@ -1771,6 +1771,7 @@ NTSTATUS torture_base_init(void)
 	torture_suite_add_1smb_test(suite, "MAXIMUM_ALLOWED", torture_maximum_allowed);
 
 	torture_suite_add_simple_test(suite, "BENCH-HOLDCON", torture_holdcon);
+	torture_suite_add_1smb_test(suite, "BENCH-HOLDOPEN", torture_holdopen);
 	torture_suite_add_simple_test(suite, "BENCH-READWRITE", run_benchrw);
 	torture_suite_add_smb_multi_test(suite, "BENCH-TORTURE", run_torture);
 	torture_suite_add_1smb_test(suite, "SCAN-PIPE_NUMBER", run_pipe_number);
diff --git a/source4/torture/basic/misc.c b/source4/torture/basic/misc.c
index a8ea88f..ab79d79 100644
--- a/source4/torture/basic/misc.c
+++ b/source4/torture/basic/misc.c
@@ -231,6 +231,69 @@ bool torture_holdcon(struct torture_context *tctx)
 }
 
 /*
+  open a file N times on the server and just hold them open
+  used for testing performance when there are N file handles
+  alopenn
+ */
+bool torture_holdopen(struct torture_context *tctx,
+		      struct smbcli_state *cli)
+{
+	int i, fnum;
+	const char *fname = "\\holdopen.dat";
+	NTSTATUS status;
+
+	smbcli_unlink(cli->tree, fname);
+
+	fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT|O_EXCL, DENY_NONE);
+	if (fnum == -1) {
+		torture_comment(tctx, "open of %s failed (%s)\n", fname, smbcli_errstr(cli->tree));
+		return false;
+	}
+
+	smbcli_close(cli->tree, fnum);
+
+	for (i=0;i<torture_numops;i++) {
+		union smb_open op;
+
+		op.generic.level = RAW_OPEN_NTCREATEX;
+		op.ntcreatex.in.root_fid.fnum = 0;
+		op.ntcreatex.in.flags = 0;
+		op.ntcreatex.in.access_mask = SEC_FILE_WRITE_DATA;
+		op.ntcreatex.in.create_options = 0;
+		op.ntcreatex.in.file_attr = FILE_ATTRIBUTE_NORMAL;
+		op.ntcreatex.in.share_access = NTCREATEX_SHARE_ACCESS_MASK;
+		op.ntcreatex.in.alloc_size = 0;
+		op.ntcreatex.in.open_disposition = NTCREATEX_DISP_OPEN;
+		op.ntcreatex.in.impersonation = NTCREATEX_IMPERSONATION_ANONYMOUS;
+		op.ntcreatex.in.security_flags = 0;
+		op.ntcreatex.in.fname = fname;
+		status = smb_raw_open(cli->tree, tctx, &op);
+		if (!NT_STATUS_IS_OK(status)) {
+			torture_warning(tctx, "open %d failed\n", i);
+			continue;
+		}
+
+		if (torture_setting_bool(tctx, "progress", true)) {
+			torture_comment(tctx, "opened %d file\r", i);
+			fflush(stdout);
+		}
+	}
+
+	torture_comment(tctx, "\nStarting pings\n");
+
+	while (1) {
+		struct smb_echo ec;
+
+		status = smb_raw_echo(cli->transport, &ec);
+		torture_comment(tctx, ".");
+		fflush(stdout);
+		sleep(15);
+	}
+
+	return true;
+}
+
+/*
 test how many open files this server supports on the one socket
 */
 bool run_maxfidtest(struct torture_context *tctx, struct smbcli_state *cli, int dummy)


-- 
Samba Shared Repository


More information about the samba-cvs mailing list