summaryrefslogtreecommitdiff
path: root/source4/torture/rpc/multi_bind.c
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2010-07-13 23:57:07 +0200
committerGünther Deschner <gd@samba.org>2010-07-14 01:34:28 +0200
commit14cf257969a1cd793dd69214a6d255722a8a5499 (patch)
tree08dc81c306d7d8c4ee9ac5e6717f6a1c2aad645f /source4/torture/rpc/multi_bind.c
parent7dad3251e3a2e672441e8306f5a015dc32019657 (diff)
downloadsamba-14cf257969a1cd793dd69214a6d255722a8a5499.tar.gz
samba-14cf257969a1cd793dd69214a6d255722a8a5499.tar.bz2
samba-14cf257969a1cd793dd69214a6d255722a8a5499.zip
s4-smbtorture: rename rpc/bind.c to rpc/multi_bind.c.
Guenther
Diffstat (limited to 'source4/torture/rpc/multi_bind.c')
-rw-r--r--source4/torture/rpc/multi_bind.c76
1 files changed, 76 insertions, 0 deletions
diff --git a/source4/torture/rpc/multi_bind.c b/source4/torture/rpc/multi_bind.c
new file mode 100644
index 0000000000..236ef2942a
--- /dev/null
+++ b/source4/torture/rpc/multi_bind.c
@@ -0,0 +1,76 @@
+/*
+ Unix SMB/CIFS implementation.
+
+ dcerpc torture tests
+
+ Copyright (C) Andrew Tridgell 2003
+ Copyright (C) Andrew Bartlett <abartlet@samba.org 2004
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include "librpc/gen_ndr/ndr_lsa_c.h"
+#include "lib/cmdline/popt_common.h"
+#include "torture/rpc/torture_rpc.h"
+
+/*
+ This test is 'bogus' in that it doesn't actually perform to the
+ spec. We need to deal with other things inside the DCERPC layer,
+ before we could have multiple binds.
+
+ We should never pass this test, until such details are fixed in our
+ client, and it looks like multible binds are never used anyway.
+
+*/
+
+bool torture_multi_bind(struct torture_context *torture)
+{
+ struct dcerpc_pipe *p;
+ struct dcerpc_binding *binding;
+ TALLOC_CTX *mem_ctx;
+ NTSTATUS status;
+ bool ret;
+
+ mem_ctx = talloc_init("torture_multi_bind");
+
+ status = torture_rpc_binding(torture, &binding);
+ if (!NT_STATUS_IS_OK(status)) {
+ talloc_free(mem_ctx);
+ return false;
+ }
+
+ status = torture_rpc_connection(torture, &p, &ndr_table_lsarpc);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ talloc_free(mem_ctx);
+ return false;
+ }
+
+ status = dcerpc_pipe_auth(mem_ctx, &p, binding, &ndr_table_lsarpc, cmdline_credentials,
+ torture->lp_ctx);
+
+ if (NT_STATUS_IS_OK(status)) {
+ printf("(incorrectly) allowed re-bind to uuid %s - %s\n",
+ GUID_string(mem_ctx, &ndr_table_lsarpc.syntax_id.uuid), nt_errstr(status));
+ ret = false;
+ } else {
+ printf("\n");
+ ret = true;
+ }
+
+ talloc_free(mem_ctx);
+
+ return ret;
+}