From e0d521ca79314b7c27512565262f614f67e20e64 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Mon, 4 Jul 2005 01:23:38 +0000 Subject: r8104: - added support for our client library to not negotiate nt status codes, controlled with 'nt status support' option. - make nt_errstr() display nice strings for dos status codes encoded using NT_STATUS_DOS() - no longer map between dos and nt status codes in the client library, instead return using NT_STATUS_DOS() - fixed the RAW-CONTEXT test to look for NT_STATUS_DOS(ERRSRV, ERRbaduid) instead of NT_STATUS_INVALID_HANDLE (This used to be commit ff5549e87ffae9f062394f30d8fd1ae95b614735) --- source4/torture/raw/context.c | 4 ++-- source4/torture/torture.c | 29 ++++++++++------------------- 2 files changed, 12 insertions(+), 21 deletions(-) (limited to 'source4/torture') diff --git a/source4/torture/raw/context.c b/source4/torture/raw/context.c index f7fe006917..830814f69c 100644 --- a/source4/torture/raw/context.c +++ b/source4/torture/raw/context.c @@ -202,11 +202,11 @@ static BOOL test_session(struct smbcli_state *cli, TALLOC_CTX *mem_ctx) printf("the new vuid should not now be accessible\n"); status = smb_raw_write(tree, &wr); - CHECK_STATUS(status, NT_STATUS_INVALID_HANDLE); + CHECK_STATUS(status, NT_STATUS_DOS(ERRSRV, ERRbaduid)); printf("second logoff for the new vuid should fail\n"); status = smb_raw_ulogoff(session); - CHECK_STATUS(status, NT_STATUS_INVALID_HANDLE); + CHECK_STATUS(status, NT_STATUS_DOS(ERRSRV, ERRbaduid)); talloc_free(session); printf("the fnum should have been auto-closed\n"); diff --git a/source4/torture/torture.c b/source4/torture/torture.c index 7e8f8457a4..c5ac873591 100644 --- a/source4/torture/torture.c +++ b/source4/torture/torture.c @@ -185,14 +185,13 @@ NTSTATUS torture_rpc_connection_transport(TALLOC_CTX *parent_ctx, BOOL check_error(const char *location, struct smbcli_state *c, uint8_t eclass, uint32_t ecode, NTSTATUS nterr) { - if (smbcli_is_dos_error(c->tree)) { - uint8_t class; - uint32_t num; - - /* Check DOS error */ - - smbcli_dos_error(c, &class, &num); - + NTSTATUS status; + + status = smbcli_nt_error(c->tree); + if (NT_STATUS_IS_DOS(status)) { + int class, num; + class = NT_STATUS_DOS_CLASS(status); + num = NT_STATUS_DOS_CODE(status); if (eclass != class || ecode != num) { printf("unexpected error code class=%d code=%d\n", (int)class, (int)num); @@ -200,15 +199,8 @@ BOOL check_error(const char *location, struct smbcli_state *c, (int)eclass, (int)ecode, nt_errstr(nterr), location); return False; } - } else { - NTSTATUS status; - - /* Check NT error */ - - status = smbcli_nt_error(c->tree); - - if (NT_STATUS_V(nterr) != NT_STATUS_V(status)) { + if (!NT_STATUS_EQUAL(nterr, status)) { printf("unexpected error code %s\n", nt_errstr(status)); printf(" expected %s (at %s)\n", nt_errstr(nterr), location); return False; @@ -1354,9 +1346,8 @@ static BOOL run_vuidtest(void) correct = False; } - if ( (cli->transport->error.etype != ETYPE_DOS) || - (cli->transport->error.e.dos.eclass != ERRSRV) || - (cli->transport->error.e.dos.ecode != ERRbaduid) ) { + if (!NT_STATUS_EQUAL(cli->transport->error.e.nt_status, + NT_STATUS_DOS(ERRSRV, ERRbaduid))) { printf("ERROR: qfileinfo should have returned DOS error " "ERRSRV:ERRbaduid\n but returned %s\n", smbcli_errstr(cli->tree)); -- cgit