[SCM] Samba Shared Repository - branch master updated
Stefan Metzmacher
metze at samba.org
Thu Apr 15 03:35:40 MDT 2010
The branch, master has been updated
via e9d4f15... s4:torture/rpc/autoidl.c: check for NT_STATUS_RPC_* instead of p->last_fault_code
via 51f7b13... s4:torture/rpc/dsgetinfo.c: check for NT_STATUS_RPC_ENUM_VALUE_OUT_OF_RANGE instead of DCERPC_FAULT_INVALID_TAG
via c85884e... s4:torture/rpc/spoolss.c: check for NT_STATUS_RPC_* instead of p->last_fault_code
via 9846485... s4:torture/rpc/scanner.c: check for NT_STATUS_RPC_* instead of p->last_fault_code
via 2aba845... s4:torture/rpc/samr.c: check for NT_STATUS_RPC_PROCNUM_OUT_OF_RANGE instead of DCERPC_FAULT_OP_RNG_ERROR
via 6f4218a... s4:torture/rpc/drsuapi.c: check for NT_STATUS_RPC_ENUM_VALUE_OUT_OF_RANGE instead of DCERPC_FAULT_INVALID_TAG
via 1864cd8... s4:torture/rpc/countcalls.c: check for NT_STATUS_RPC_PROCNUM_OUT_OF_RANGE instead of DCERPC_FAULT_OP_RNG_ERROR
via 0cc24f2... s4:torture/rpc/alter_context: check for NT_STATUS_RPC_PROTOCOL_ERROR instead of DCERPC_NCA_S_PROTO_ERROR
via cf9d425... s4:torture/rpc/dssync.c: check for NT_STATUS_RPC_PROCNUM_OUT_OF_RANGE instead of DCERPC_FAULT_OP_RNG_ERROR
via de94672... s4:torture/rpc/alter_context.c: check for NT_STATUS_RPC_BAD_STUB_DATA instead of NT_STATUS_NET_WRITE_FAULT
via bb4a958... s4:torture/rpc/handles.c: check for NT_STATUS_RPC_SS_CONTEXT_MISMATCH instead of DCERPC_FAULT_CONTEXT_MISMATCH
via 34a6350... s4:torture/rpc/lsa.c: test for NT_STATUS_RPC_SS_CONTEXT_MISMATCH instead of NT_STATUS_NET_WRITE_FAULT
via 61e53c0... s4:librpc/rpc/pyrpc.c: map NT_STATUS_NET_WRITE_FAULT to the matching NT_STATUS_RPC_* code
via a8e81c2... pidl:Samba4/NDR/Client: map NT_STATUS_NET_WRITE_FAULT to the matching NT_STATUS_RPC_* code
via fed16f4... librpc/rpc: add dcerpc_fault_to_nt_status()
via c0736c7... s4:torture/rpc: don't look at p->last_fault_code for debugging anymore
via 1293712... s4:util/net/drs: don't look at p->last_fault_code for debugging anymore
via 146ce6e... s4:libnet/libnet_join: don't look at p->last_fault_code for debugging anymore
from 7f6cdad... s4:winbind: use WINBINDD_SOCKET_NAME instead of WINBINDD_SAMBA3_SOCKET
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit e9d4f1578cdbd03ddc63d22822483add20e753d4
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Apr 12 14:11:50 2010 +0200
s4:torture/rpc/autoidl.c: check for NT_STATUS_RPC_* instead of p->last_fault_code
metze
commit 51f7b1382b91053ae96b2cd14dae17ad6eea0df4
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Apr 13 21:48:36 2010 +0200
s4:torture/rpc/dsgetinfo.c: check for NT_STATUS_RPC_ENUM_VALUE_OUT_OF_RANGE instead of DCERPC_FAULT_INVALID_TAG
metze
commit c85884ecc889945721303818d6fa18081403b3c2
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Apr 12 14:14:29 2010 +0200
s4:torture/rpc/spoolss.c: check for NT_STATUS_RPC_* instead of p->last_fault_code
metze
commit 98464853f4c508ac26cd0f446dc1365b4c7668c7
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Apr 12 14:13:55 2010 +0200
s4:torture/rpc/scanner.c: check for NT_STATUS_RPC_* instead of p->last_fault_code
metze
commit 2aba84581616ebf58d3793c1213e2d8c652a2752
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Apr 12 14:13:27 2010 +0200
s4:torture/rpc/samr.c: check for NT_STATUS_RPC_PROCNUM_OUT_OF_RANGE instead of DCERPC_FAULT_OP_RNG_ERROR
metze
commit 6f4218a4aa097c3b89224bd3cba2d9d2649f28d5
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Apr 12 14:12:30 2010 +0200
s4:torture/rpc/drsuapi.c: check for NT_STATUS_RPC_ENUM_VALUE_OUT_OF_RANGE instead of DCERPC_FAULT_INVALID_TAG
metze
commit 1864cd8fa79cf109460516973c67e785fd0a7644
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Apr 12 14:12:10 2010 +0200
s4:torture/rpc/countcalls.c: check for NT_STATUS_RPC_PROCNUM_OUT_OF_RANGE instead of DCERPC_FAULT_OP_RNG_ERROR
metze
commit 0cc24f2f9b36241afd4240c5d312052f5010d014
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Apr 10 11:04:04 2010 +0200
s4:torture/rpc/alter_context: check for NT_STATUS_RPC_PROTOCOL_ERROR instead of DCERPC_NCA_S_PROTO_ERROR
metze
commit cf9d425e3d9646c6b4ea1b57a39cca23dfd26ab7
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Mar 29 22:58:53 2010 +0200
s4:torture/rpc/dssync.c: check for NT_STATUS_RPC_PROCNUM_OUT_OF_RANGE instead of DCERPC_FAULT_OP_RNG_ERROR
metze
commit de94672fe083e7a335846353c61b5c0aa08ac0b1
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Mar 29 22:45:05 2010 +0200
s4:torture/rpc/alter_context.c: check for NT_STATUS_RPC_BAD_STUB_DATA instead of NT_STATUS_NET_WRITE_FAULT
metze
commit bb4a958c6df8bdccc5e7f8ac332bac5784924a8a
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Mar 29 22:36:22 2010 +0200
s4:torture/rpc/handles.c: check for NT_STATUS_RPC_SS_CONTEXT_MISMATCH instead of DCERPC_FAULT_CONTEXT_MISMATCH
metze
commit 34a6350715ddeea88dbbd13b17858b0890d85630
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Mar 29 22:36:07 2010 +0200
s4:torture/rpc/lsa.c: test for NT_STATUS_RPC_SS_CONTEXT_MISMATCH instead of NT_STATUS_NET_WRITE_FAULT
metze
commit 61e53c078203ddb11c7f9f04492ade7d95d21f02
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Apr 12 14:10:24 2010 +0200
s4:librpc/rpc/pyrpc.c: map NT_STATUS_NET_WRITE_FAULT to the matching NT_STATUS_RPC_* code
metze
commit a8e81c25ebe7a673c2c6e046dd6a0a829c4af409
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Mar 29 22:35:37 2010 +0200
pidl:Samba4/NDR/Client: map NT_STATUS_NET_WRITE_FAULT to the matching NT_STATUS_RPC_* code
metze
commit fed16f4015f8209dc4705fc1464fc45a093d9349
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Mar 20 11:31:55 2010 +0100
librpc/rpc: add dcerpc_fault_to_nt_status()
For now this only handles fault codes with we've seen yet
and for which we have explicit torture checks.
metze
commit c0736c70d6ab442055f998e7b1308a0536f99a95
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Apr 13 09:38:03 2010 +0200
s4:torture/rpc: don't look at p->last_fault_code for debugging anymore
metze
commit 1293712b7d098aca12d7d2e043dc8ee87fb02aec
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Apr 13 09:14:14 2010 +0200
s4:util/net/drs: don't look at p->last_fault_code for debugging anymore
metze
commit 146ce6ead122f6f4ab18998c91d1bbdd1c63d336
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Apr 13 09:12:52 2010 +0200
s4:libnet/libnet_join: don't look at p->last_fault_code for debugging anymore
metze
-----------------------------------------------------------------------
Summary of changes:
librpc/rpc/dcerpc_error.c | 24 ++++++++++
pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm | 8 +++
source4/libnet/libnet_join.c | 69 ++++++++--------------------
source4/librpc/rpc/dcerpc.h | 1 +
source4/librpc/rpc/pyrpc.c | 10 +---
source4/torture/rpc/alter_context.c | 6 +--
source4/torture/rpc/autoidl.c | 18 ++++----
source4/torture/rpc/countcalls.c | 8 +---
source4/torture/rpc/drsuapi.c | 2 +-
source4/torture/rpc/drsuapi.h | 3 -
source4/torture/rpc/drsuapi_cracknames.c | 27 -----------
source4/torture/rpc/dsgetinfo.c | 5 +--
source4/torture/rpc/dssync.c | 14 +-----
source4/torture/rpc/handles.c | 54 ++++++-----------------
source4/torture/rpc/lsa.c | 2 +-
source4/torture/rpc/samr.c | 3 +-
source4/torture/rpc/scanner.c | 10 ++---
source4/torture/rpc/spoolss.c | 8 +---
source4/torture/rpc/testjoin.c | 3 -
source4/utils/net/drs/net_drs.c | 3 -
source4/utils/net/drs/net_drs_kcc.c | 3 -
source4/utils/net/drs/net_drs_replicate.c | 3 -
source4/utils/net/drs/net_drs_showrepl.c | 3 -
23 files changed, 94 insertions(+), 193 deletions(-)
Changeset truncated at 500 lines:
diff --git a/librpc/rpc/dcerpc_error.c b/librpc/rpc/dcerpc_error.c
index 69cd08b..713e32e 100644
--- a/librpc/rpc/dcerpc_error.c
+++ b/librpc/rpc/dcerpc_error.c
@@ -95,3 +95,27 @@ _PUBLIC_ const char *dcerpc_errstr(TALLOC_CTX *mem_ctx, uint32_t fault_code)
return win_errstr(werr);
}
+
+_PUBLIC_ NTSTATUS dcerpc_fault_to_nt_status(uint32_t fault_code)
+{
+ /* TODO: add more mappings */
+ switch (fault_code) {
+ case DCERPC_FAULT_OP_RNG_ERROR:
+ return NT_STATUS_RPC_PROCNUM_OUT_OF_RANGE;
+ case DCERPC_FAULT_UNK_IF:
+ return NT_STATUS_RPC_UNKNOWN_IF;
+ case DCERPC_FAULT_NDR:
+ return NT_STATUS_RPC_BAD_STUB_DATA;
+ case DCERPC_FAULT_INVALID_TAG:
+ return NT_STATUS_RPC_ENUM_VALUE_OUT_OF_RANGE;
+ case DCERPC_FAULT_CONTEXT_MISMATCH:
+ return NT_STATUS_RPC_SS_CONTEXT_MISMATCH;
+ case DCERPC_FAULT_OTHER:
+ return NT_STATUS_RPC_CALL_FAILED;
+ case DCERPC_FAULT_ACCESS_DENIED:
+ return NT_STATUS_ACCESS_DENIED;
+ }
+
+ return NT_STATUS_RPC_PROTOCOL_ERROR;
+}
+
diff --git a/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm b/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm
index 43fe611..189eb9e 100644
--- a/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm
+++ b/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm
@@ -60,6 +60,10 @@ sub ParseFunctionOldRecv($$$)
status = dcerpc_ndr_request_recv(rreq);
+ if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
+ status = dcerpc_fault_to_nt_status(p->last_fault_code);
+ }
+
if (NT_STATUS_IS_OK(status) && (p->conn->flags & DCERPC_DEBUG_PRINT_OUT)) {
NDR_PRINT_OUT_DEBUG($name, r);
}
@@ -290,6 +294,10 @@ sub ParseFunction_r_Sync($$$)
status = dcerpc_ndr_request(p, NULL, &ndr_table_$interface->{NAME},
NDR_$uname, mem_ctx, r);
+ if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
+ status = dcerpc_fault_to_nt_status(p->last_fault_code);
+ }
+
if (NT_STATUS_IS_OK(status) && (p->conn->flags & DCERPC_DEBUG_PRINT_OUT)) {
NDR_PRINT_OUT_DEBUG($name, r);
}
diff --git a/source4/libnet/libnet_join.c b/source4/libnet/libnet_join.c
index f5cbda0..748a791 100644
--- a/source4/libnet/libnet_join.c
+++ b/source4/libnet/libnet_join.c
@@ -135,21 +135,12 @@ static NTSTATUS libnet_JoinADSDomain(struct libnet_context *ctx, struct libnet_J
status = dcerpc_drsuapi_DsBind_r(drsuapi_pipe->binding_handle, tmp_ctx, &r_drsuapi_bind);
if (!NT_STATUS_IS_OK(status)) {
- if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
- r->out.error_string
- = talloc_asprintf(r,
- "dcerpc_drsuapi_DsBind failed - %s",
- dcerpc_errstr(tmp_ctx, drsuapi_pipe->last_fault_code));
- talloc_free(tmp_ctx);
- return status;
- } else {
- r->out.error_string
- = talloc_asprintf(r,
- "dcerpc_drsuapi_DsBind failed - %s",
- nt_errstr(status));
- talloc_free(tmp_ctx);
- return status;
- }
+ r->out.error_string
+ = talloc_asprintf(r,
+ "dcerpc_drsuapi_DsBind failed - %s",
+ nt_errstr(status));
+ talloc_free(tmp_ctx);
+ return status;
} else if (!W_ERROR_IS_OK(r_drsuapi_bind.out.result)) {
r->out.error_string
= talloc_asprintf(r,
@@ -193,23 +184,13 @@ static NTSTATUS libnet_JoinADSDomain(struct libnet_context *ctx, struct libnet_J
status = dcerpc_drsuapi_DsCrackNames_r(drsuapi_pipe->binding_handle, tmp_ctx, &r_crack_names);
if (!NT_STATUS_IS_OK(status)) {
- if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
- r->out.error_string
- = talloc_asprintf(r,
- "dcerpc_drsuapi_DsCrackNames for [%s] failed - %s",
- names[0].str,
- dcerpc_errstr(tmp_ctx, drsuapi_pipe->last_fault_code));
- talloc_free(tmp_ctx);
- return status;
- } else {
- r->out.error_string
- = talloc_asprintf(r,
- "dcerpc_drsuapi_DsCrackNames for [%s] failed - %s",
- names[0].str,
- nt_errstr(status));
- talloc_free(tmp_ctx);
- return status;
- }
+ r->out.error_string
+ = talloc_asprintf(r,
+ "dcerpc_drsuapi_DsCrackNames for [%s] failed - %s",
+ names[0].str,
+ nt_errstr(status));
+ talloc_free(tmp_ctx);
+ return status;
} else if (!W_ERROR_IS_OK(r_crack_names.out.result)) {
r->out.error_string
= talloc_asprintf(r,
@@ -354,23 +335,13 @@ static NTSTATUS libnet_JoinADSDomain(struct libnet_context *ctx, struct libnet_J
status = dcerpc_drsuapi_DsCrackNames_r(drsuapi_pipe->binding_handle, tmp_ctx, &r_crack_names);
if (!NT_STATUS_IS_OK(status)) {
- if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
- r->out.error_string
- = talloc_asprintf(r,
- "dcerpc_drsuapi_DsCrackNames for [%s] failed - %s",
- r->in.domain_name,
- dcerpc_errstr(tmp_ctx, drsuapi_pipe->last_fault_code));
- talloc_free(tmp_ctx);
- return status;
- } else {
- r->out.error_string
- = talloc_asprintf(r,
- "dcerpc_drsuapi_DsCrackNames for [%s] failed - %s",
- r->in.domain_name,
- nt_errstr(status));
- talloc_free(tmp_ctx);
- return status;
- }
+ r->out.error_string
+ = talloc_asprintf(r,
+ "dcerpc_drsuapi_DsCrackNames for [%s] failed - %s",
+ r->in.domain_name,
+ nt_errstr(status));
+ talloc_free(tmp_ctx);
+ return status;
} else if (!W_ERROR_IS_OK(r_crack_names.out.result)) {
r->out.error_string
= talloc_asprintf(r,
diff --git a/source4/librpc/rpc/dcerpc.h b/source4/librpc/rpc/dcerpc.h
index 22988e6..69de8c5 100644
--- a/source4/librpc/rpc/dcerpc.h
+++ b/source4/librpc/rpc/dcerpc.h
@@ -303,6 +303,7 @@ NTSTATUS dcerpc_pipe_connect_b(TALLOC_CTX *parent_ctx,
struct tevent_context *ev,
struct loadparm_context *lp_ctx);
const char *dcerpc_errstr(TALLOC_CTX *mem_ctx, uint32_t fault_code);
+NTSTATUS dcerpc_fault_to_nt_status(uint32_t fault_code);
NTSTATUS dcerpc_pipe_auth(TALLOC_CTX *mem_ctx,
struct dcerpc_pipe **p,
diff --git a/source4/librpc/rpc/pyrpc.c b/source4/librpc/rpc/pyrpc.c
index 718c749..10f1d4b 100644
--- a/source4/librpc/rpc/pyrpc.c
+++ b/source4/librpc/rpc/pyrpc.c
@@ -207,14 +207,10 @@ static PyMemberDef dcerpc_interface_members[] = {
static void PyErr_SetDCERPCStatus(struct dcerpc_pipe *p, NTSTATUS status)
{
- if (p != NULL && NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
- const char *errstr = dcerpc_errstr(NULL, p->last_fault_code);
- PyErr_SetObject(PyExc_RuntimeError,
- Py_BuildValue("(i,s)", p->last_fault_code,
- errstr));
- } else {
- PyErr_SetNTSTATUS(status);
+ if (p && NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
+ status = dcerpc_fault_to_nt_status(p->last_fault_code);
}
+ PyErr_SetNTSTATUS(status);
}
static PyObject *py_iface_request(PyObject *self, PyObject *args, PyObject *kwargs)
diff --git a/source4/torture/rpc/alter_context.c b/source4/torture/rpc/alter_context.c
index 6401643..cbfe034 100644
--- a/source4/torture/rpc/alter_context.c
+++ b/source4/torture/rpc/alter_context.c
@@ -87,9 +87,7 @@ bool torture_rpc_alter_context(struct torture_context *torture)
torture_comment(torture, "Testing change of primary context\n");
status = dcerpc_alter_context(p, torture, &p2->syntax, &p2->transfer_syntax);
- if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
- torture_assert_int_equal(torture, p->last_fault_code, DCERPC_NCA_S_PROTO_ERROR,
- "dcerpc_alter_context should generate a proto error");
+ if (NT_STATUS_EQUAL(status, NT_STATUS_RPC_PROTOCOL_ERROR)) {
ret &= test_lsa_OpenPolicy2_ex(p->binding_handle, torture, &handle,
NT_STATUS_PIPE_DISCONNECTED);
@@ -98,7 +96,7 @@ bool torture_rpc_alter_context(struct torture_context *torture)
torture_assert_ntstatus_ok(torture, status, "dcerpc_alter_context failed");
torture_comment(torture, "Testing DSSETUP pipe operations - should fault\n");
- ret &= test_DsRoleGetPrimaryDomainInformation_ext(torture, p, NT_STATUS_NET_WRITE_FAULT);
+ ret &= test_DsRoleGetPrimaryDomainInformation_ext(torture, p, NT_STATUS_RPC_BAD_STUB_DATA);
ret &= test_lsa_OpenPolicy2(p->binding_handle, torture, &handle);
diff --git a/source4/torture/rpc/autoidl.c b/source4/torture/rpc/autoidl.c
index abb09d4..77bb761 100644
--- a/source4/torture/rpc/autoidl.c
+++ b/source4/torture/rpc/autoidl.c
@@ -131,7 +131,7 @@ static void try_expand(struct torture_context *tctx, const struct ndr_interface_
status = dcerpc_request(p, NULL, opnum, tctx, &stub_in, &stub_out);
- if (!NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
+ if (NT_STATUS_IS_OK(status)) {
print_depth(depth);
printf("expand by %d gives %s\n", n, nt_errstr(status));
if (n >= 4) {
@@ -142,10 +142,10 @@ static void try_expand(struct torture_context *tctx, const struct ndr_interface_
} else {
#if 0
print_depth(depth);
- printf("expand by %d gives fault %s\n", n, dcerpc_errstr(tctx, p->last_fault_code));
+ printf("expand by %d gives fault %s\n", n, nt_errstr(status));
#endif
}
- if (p->last_fault_code == 5) {
+ if (NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED)) {
reopen(tctx, &p, iface);
}
}
@@ -172,11 +172,11 @@ static void test_ptr_scan(struct torture_context *tctx, const struct ndr_interfa
SIVAL(stub_in.data, ofs, 1);
status = dcerpc_request(p, NULL, opnum, tctx, &stub_in, &stub_out);
- if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
+ if (!NT_STATUS_IS_OK(status)) {
print_depth(depth);
printf("possible ptr at ofs %d - fault %s\n",
- ofs-min_ofs, dcerpc_errstr(tctx, p->last_fault_code));
- if (p->last_fault_code == 5) {
+ ofs-min_ofs, nt_errstr(status));
+ if (NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED)) {
reopen(tctx, &p, iface);
}
if (depth == 0) {
@@ -236,9 +236,9 @@ static void test_scan_call(struct torture_context *tctx, const struct ndr_interf
return;
}
- if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
- printf("opnum %d size %d fault %s\n", opnum, i, dcerpc_errstr(tctx, p->last_fault_code));
- if (p->last_fault_code == 5) {
+ if (!NT_STATUS_IS_OK(status)) {
+ printf("opnum %d size %d fault %s\n", opnum, i, nt_errstr(status));
+ if (NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED)) {
reopen(tctx, &p, iface);
}
continue;
diff --git a/source4/torture/rpc/countcalls.c b/source4/torture/rpc/countcalls.c
index e49ba6f..5857af6 100644
--- a/source4/torture/rpc/countcalls.c
+++ b/source4/torture/rpc/countcalls.c
@@ -59,13 +59,7 @@ bool count_calls(struct torture_context *tctx,
for (i=0;i<500;i++) {
status = dcerpc_request(p, NULL, i, p, &stub_in, &stub_out);
- if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT) &&
- p->last_fault_code == DCERPC_FAULT_OP_RNG_ERROR) {
- i--;
- break;
- }
- if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT) &&
- p->last_fault_code == DCERPC_FAULT_OP_RNG_ERROR) {
+ if (NT_STATUS_EQUAL(status, NT_STATUS_RPC_PROCNUM_OUT_OF_RANGE)) {
i--;
break;
}
diff --git a/source4/torture/rpc/drsuapi.c b/source4/torture/rpc/drsuapi.c
index a76ecab..105af1c 100644
--- a/source4/torture/rpc/drsuapi.c
+++ b/source4/torture/rpc/drsuapi.c
@@ -378,7 +378,7 @@ static bool test_DsReplicaGetInfo(struct torture_context *tctx,
status = dcerpc_drsuapi_DsReplicaGetInfo_r(p->binding_handle, tctx, &r);
torture_drsuapi_assert_call(tctx, p, status, &r, "dcerpc_drsuapi_DsReplicaGetInfo");
- if (!NT_STATUS_IS_OK(status) && p->last_fault_code == DCERPC_FAULT_INVALID_TAG) {
+ if (NT_STATUS_EQUAL(status, NT_STATUS_RPC_ENUM_VALUE_OUT_OF_RANGE)) {
torture_comment(tctx,
"DsReplicaGetInfo level %d and/or infotype %d not supported by server\n",
array[i].level, array[i].infotype);
diff --git a/source4/torture/rpc/drsuapi.h b/source4/torture/rpc/drsuapi.h
index ba4c057..6ce3009 100644
--- a/source4/torture/rpc/drsuapi.h
+++ b/source4/torture/rpc/drsuapi.h
@@ -56,9 +56,6 @@ struct DsPrivate {
NTSTATUS __nt = _ntstat; \
if (!NT_STATUS_IS_OK(__nt)) { \
const char *errstr = nt_errstr(__nt); \
- if (NT_STATUS_EQUAL(__nt, NT_STATUS_NET_WRITE_FAULT)) { \
- errstr = dcerpc_errstr(_tctx, _p->last_fault_code); \
- } \
torture_fail(tctx, talloc_asprintf(_tctx, "%s failed - %s", _msg, errstr)); \
} \
torture_assert_werr_equal(_tctx, (_pr)->out.result, _werr_expected, _msg); \
diff --git a/source4/torture/rpc/drsuapi_cracknames.c b/source4/torture/rpc/drsuapi_cracknames.c
index 58ce4f7..5eae0ad 100644
--- a/source4/torture/rpc/drsuapi_cracknames.c
+++ b/source4/torture/rpc/drsuapi_cracknames.c
@@ -90,9 +90,6 @@ static bool test_DsCrackNamesMatrix(struct torture_context *tctx,
status = dcerpc_drsuapi_DsCrackNames_r(p->binding_handle, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
const char *errstr = nt_errstr(status);
- if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
- errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
- }
err_msg = talloc_asprintf(mem_ctx,
"testing DsCrackNames (matrix prep) with name '%s' from format: %d desired format:%d failed - %s",
names[0].str, r.in.req->req1.format_offered, r.in.req->req1.format_desired, errstr);
@@ -175,9 +172,6 @@ static bool test_DsCrackNamesMatrix(struct torture_context *tctx,
status = dcerpc_drsuapi_DsCrackNames_r(p->binding_handle, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
const char *errstr = nt_errstr(status);
- if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
- errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
- }
err_msg = talloc_asprintf(mem_ctx,
"testing DsCrackNames (matrix) with name '%s' from format: %d desired format:%d failed - %s",
names[0].str, r.in.req->req1.format_offered, r.in.req->req1.format_desired, errstr);
@@ -285,9 +279,6 @@ bool test_DsCrackNames(struct torture_context *tctx,
status = dcerpc_drsuapi_DsCrackNames_r(p->binding_handle, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
const char *errstr = nt_errstr(status);
- if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
- errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
- }
err_msg = talloc_asprintf(mem_ctx, "dcerpc_drsuapi_DsCrackNames failed - %s", errstr);
torture_fail(tctx, err_msg);
} else if (!W_ERROR_IS_OK(r.out.result)) {
@@ -310,9 +301,6 @@ bool test_DsCrackNames(struct torture_context *tctx,
status = dcerpc_drsuapi_DsCrackNames_r(p->binding_handle, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
const char *errstr = nt_errstr(status);
- if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
- errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
- }
err_msg = talloc_asprintf(mem_ctx, "dcerpc_drsuapi_DsCrackNames failed - %s", errstr);
torture_fail(tctx, err_msg);
} else if (!W_ERROR_IS_OK(r.out.result)) {
@@ -336,9 +324,6 @@ bool test_DsCrackNames(struct torture_context *tctx,
status = dcerpc_drsuapi_DsCrackNames_r(p->binding_handle, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
const char *errstr = nt_errstr(status);
- if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
- errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
- }
err_msg = talloc_asprintf(mem_ctx, "dcerpc_drsuapi_DsCrackNames failed - %s", errstr);
torture_fail(tctx, err_msg);
} else if (!W_ERROR_IS_OK(r.out.result)) {
@@ -384,9 +369,6 @@ bool test_DsCrackNames(struct torture_context *tctx,
status = dcerpc_drsuapi_DsCrackNames_r(p->binding_handle, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
const char *errstr = nt_errstr(status);
- if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
- errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
- }
err_msg = talloc_asprintf(mem_ctx, "dcerpc_drsuapi_DsCrackNames failed - %s", errstr);
torture_fail(tctx, err_msg);
} else if (!W_ERROR_IS_OK(r.out.result)) {
@@ -410,9 +392,6 @@ bool test_DsCrackNames(struct torture_context *tctx,
status = dcerpc_drsuapi_DsCrackNames_r(p->binding_handle, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
const char *errstr = nt_errstr(status);
- if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
- errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
- }
err_msg = talloc_asprintf(mem_ctx, "dcerpc_drsuapi_DsCrackNames failed - %s", errstr);
torture_fail(tctx, err_msg);
} else if (!W_ERROR_IS_OK(r.out.result)) {
@@ -436,9 +415,6 @@ bool test_DsCrackNames(struct torture_context *tctx,
status = dcerpc_drsuapi_DsCrackNames_r(p->binding_handle, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
const char *errstr = nt_errstr(status);
- if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
- errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
- }
err_msg = talloc_asprintf(mem_ctx, "dcerpc_drsuapi_DsCrackNames failed - %s", errstr);
torture_fail(tctx, err_msg);
} else if (!W_ERROR_IS_OK(r.out.result)) {
@@ -956,9 +932,6 @@ bool test_DsCrackNames(struct torture_context *tctx,
status = dcerpc_drsuapi_DsCrackNames_r(p->binding_handle, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
const char *errstr = nt_errstr(status);
- if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
- errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
- }
err_msg = talloc_asprintf(mem_ctx, "dcerpc_drsuapi_DsCrackNames failed - %s", errstr);
torture_fail(tctx, err_msg);
} else if (!W_ERROR_IS_OK(r.out.result)) {
diff --git a/source4/torture/rpc/dsgetinfo.c b/source4/torture/rpc/dsgetinfo.c
index 0184905..7d21022 100644
--- a/source4/torture/rpc/dsgetinfo.c
+++ b/source4/torture/rpc/dsgetinfo.c
@@ -170,9 +170,6 @@ static bool _test_DsBind(struct torture_context *tctx,
status = dcerpc_drsuapi_DsBind_r(b->drs_handle, ctx, &b->req);
if (!NT_STATUS_IS_OK(status)) {
const char *errstr = nt_errstr(status);
- if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
- errstr = dcerpc_errstr(ctx, b->drs_pipe->last_fault_code);
- }
printf("dcerpc_drsuapi_DsBind failed - %s\n", errstr);
ret = false;
} else if (!W_ERROR_IS_OK(b->req.out.result)) {
@@ -345,7 +342,7 @@ static bool test_getinfo(struct torture_context *tctx,
r.out.info_type = &info_type;
status = dcerpc_drsuapi_DsReplicaGetInfo_r(b, tctx, &r);
- if (!NT_STATUS_IS_OK(status) && p->last_fault_code == DCERPC_FAULT_INVALID_TAG) {
+ if (NT_STATUS_EQUAL(status, NT_STATUS_RPC_ENUM_VALUE_OUT_OF_RANGE)) {
torture_comment(tctx,
"DsReplicaGetInfo level %d and/or infotype %d not supported by server\n",
array[i].level, array[i].infotype);
diff --git a/source4/torture/rpc/dssync.c b/source4/torture/rpc/dssync.c
index c791086..2e5edfd 100644
--- a/source4/torture/rpc/dssync.c
+++ b/source4/torture/rpc/dssync.c
@@ -209,9 +209,6 @@ static bool _test_DsBind(struct torture_context *tctx,
status = dcerpc_drsuapi_DsBind_r(b->drs_handle, ctx, &b->req);
if (!NT_STATUS_IS_OK(status)) {
const char *errstr = nt_errstr(status);
- if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
- errstr = dcerpc_errstr(ctx, b->drs_pipe->last_fault_code);
- }
printf("dcerpc_drsuapi_DsBind failed - %s\n", errstr);
ret = false;
} else if (!W_ERROR_IS_OK(b->req.out.result)) {
@@ -349,9 +346,6 @@ static bool test_GetInfo(struct torture_context *tctx, struct DsSyncTest *ctx)
status = dcerpc_drsuapi_DsCrackNames_r(ctx->admin.drsuapi.drs_handle, ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
const char *errstr = nt_errstr(status);
- if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
- errstr = dcerpc_errstr(ctx, ctx->admin.drsuapi.drs_pipe->last_fault_code);
- }
printf("dcerpc_drsuapi_DsCrackNames failed - %s\n", errstr);
return false;
} else if (!W_ERROR_IS_OK(r.out.result)) {
@@ -1023,12 +1017,8 @@ static bool test_FetchNT4Data(struct torture_context *tctx,
torture_skip(tctx, "DsGetNT4ChangeLog not supported by target server");
} else if (!NT_STATUS_IS_OK(status)) {
const char *errstr = nt_errstr(status);
- if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
- struct dcerpc_pipe *p = ctx->new_dc.drsuapi.drs_pipe;
- if (p->last_fault_code == DCERPC_FAULT_OP_RNG_ERROR) {
- torture_skip(tctx, "DsGetNT4ChangeLog not supported by target server");
- }
- errstr = dcerpc_errstr(ctx, p->last_fault_code);
+ if (NT_STATUS_EQUAL(status, NT_STATUS_RPC_PROCNUM_OUT_OF_RANGE)) {
+ torture_skip(tctx, "DsGetNT4ChangeLog not supported by target server");
}
torture_fail(tctx,
talloc_asprintf(tctx, "dcerpc_drsuapi_DsGetNT4ChangeLog failed - %s\n",
diff --git a/source4/torture/rpc/handles.c b/source4/torture/rpc/handles.c
index 7476292..b99c267 100644
--- a/source4/torture/rpc/handles.c
+++ b/source4/torture/rpc/handles.c
@@ -82,9 +82,7 @@ static bool test_handles_lsa(struct torture_context *torture)
c.out.handle = &handle2;
status = dcerpc_lsa_Close_r(b2, mem_ctx, &c);
- torture_assert_ntstatus_equal(torture, status, NT_STATUS_NET_WRITE_FAULT,
- "closing policy handle on p2");
- torture_assert_int_equal(torture, p2->last_fault_code, DCERPC_FAULT_CONTEXT_MISMATCH,
+ torture_assert_ntstatus_equal(torture, status, NT_STATUS_RPC_SS_CONTEXT_MISMATCH,
"closing policy handle on p2");
torture_assert_ntstatus_ok(torture, dcerpc_lsa_Close_r(b1, mem_ctx, &c),
@@ -92,11 +90,9 @@ static bool test_handles_lsa(struct torture_context *torture)
torture_assert_ntstatus_ok(torture, c.out.result, "closing policy handle on p1");
status = dcerpc_lsa_Close_r(b1, mem_ctx, &c);
- torture_assert_ntstatus_equal(torture, status, NT_STATUS_NET_WRITE_FAULT,
- "closing policy handle on p1 again");
- torture_assert_int_equal(torture, p1->last_fault_code, DCERPC_FAULT_CONTEXT_MISMATCH,
+ torture_assert_ntstatus_equal(torture, status, NT_STATUS_RPC_SS_CONTEXT_MISMATCH,
"closing policy handle on p1 again");
-
+
talloc_free(mem_ctx);
return true;
@@ -214,21 +210,15 @@ static bool test_handles_lsa_shared(struct torture_context *torture)
status = dcerpc_lsa_Close_r(b1, mem_ctx, &c);
- torture_assert_ntstatus_equal(torture, status, NT_STATUS_NET_WRITE_FAULT,
--
Samba Shared Repository
More information about the samba-cvs
mailing list