s3:torture:smb2: pass smb2-session-reconnect test (add generosity in error case)
authorMichael Adam <obnox@samba.org>
Wed, 18 Apr 2012 15:55:51 +0000 (17:55 +0200)
committerStefan Metzmacher <metze@samba.org>
Fri, 22 Jun 2012 15:28:18 +0000 (17:28 +0200)
samba checks tree before file, so we get a
STATUS_NETWORK_NAME_DELETED instead STATUS_FILE_CLOSED
when operating on a file handle on a invalid tree id.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
source3/torture/test_smb2.c

index 8aff588cc7e6595ea6f289f644f06a8126701143..af0e1561d9ad329d03d227a2a1f9bd10d31c811b 100644 (file)
@@ -529,7 +529,9 @@ bool run_smb2_session_reconnect(int dummy)
         */
        status = smb2cli_flush(cli2->conn, cli2->timeout, cli2->smb2.session,
                               cli2->smb2.tid, fid_persistent, fid_volatile);
-       if (!NT_STATUS_EQUAL(status, NT_STATUS_FILE_CLOSED)) {
+       if (!NT_STATUS_EQUAL(status, NT_STATUS_FILE_CLOSED) &&
+           !NT_STATUS_EQUAL(status, NT_STATUS_NETWORK_NAME_DELETED))
+       {
                printf("smb2cli_flush returned %s\n", nt_errstr(status));
                return false;
        }
@@ -537,7 +539,9 @@ bool run_smb2_session_reconnect(int dummy)
        status = smb2cli_write(cli2->conn, cli2->timeout, cli2->smb2.session,
                               cli2->smb2.tid, strlen(hello), 0, fid_persistent,
                               fid_volatile, 0, 0, (const uint8_t *)hello);
-       if (!NT_STATUS_EQUAL(status, NT_STATUS_FILE_CLOSED)) {
+       if (!NT_STATUS_EQUAL(status, NT_STATUS_FILE_CLOSED) &&
+           !NT_STATUS_EQUAL(status, NT_STATUS_NETWORK_NAME_DELETED))
+       {
                printf("smb2cli_write returned %s\n", nt_errstr(status));
                return false;
        }
@@ -546,7 +550,9 @@ bool run_smb2_session_reconnect(int dummy)
                              cli2->smb2.tid, 0x10000, 0, fid_persistent,
                              fid_volatile, 2, 0,
                              talloc_tos(), &result, &nread);
-       if (!NT_STATUS_EQUAL(status, NT_STATUS_FILE_CLOSED)) {
+       if (!NT_STATUS_EQUAL(status, NT_STATUS_FILE_CLOSED) &&
+           !NT_STATUS_EQUAL(status, NT_STATUS_NETWORK_NAME_DELETED))
+       {
                printf("smb2cli_read returned %s\n", nt_errstr(status));
                return false;
        }
@@ -585,7 +591,9 @@ bool run_smb2_session_reconnect(int dummy)
 
        status = smb2cli_flush(cli2->conn, cli2->timeout, cli2->smb2.session,
                               cli2->smb2.tid, fid_persistent, fid_volatile);
-       if (!NT_STATUS_EQUAL(status, NT_STATUS_FILE_CLOSED)) {
+       if (!NT_STATUS_EQUAL(status, NT_STATUS_FILE_CLOSED) &&
+           !NT_STATUS_EQUAL(status, NT_STATUS_NETWORK_NAME_DELETED))
+       {
                printf("smb2cli_flush returned %s\n", nt_errstr(status));
                return false;
        }
@@ -593,7 +601,9 @@ bool run_smb2_session_reconnect(int dummy)
        status = smb2cli_write(cli2->conn, cli2->timeout, cli2->smb2.session,
                               cli2->smb2.tid, strlen(hello), 0, fid_persistent,
                               fid_volatile, 0, 0, (const uint8_t *)hello);
-       if (!NT_STATUS_EQUAL(status, NT_STATUS_FILE_CLOSED)) {
+       if (!NT_STATUS_EQUAL(status, NT_STATUS_FILE_CLOSED) &&
+           !NT_STATUS_EQUAL(status, NT_STATUS_NETWORK_NAME_DELETED))
+       {
                printf("smb2cli_write returned %s\n", nt_errstr(status));
                return false;
        }
@@ -602,7 +612,9 @@ bool run_smb2_session_reconnect(int dummy)
                              cli2->smb2.tid, 0x10000, 0, fid_persistent,
                              fid_volatile, 2, 0,
                              talloc_tos(), &result, &nread);
-       if (!NT_STATUS_EQUAL(status, NT_STATUS_FILE_CLOSED)) {
+       if (!NT_STATUS_EQUAL(status, NT_STATUS_FILE_CLOSED) &&
+           !NT_STATUS_EQUAL(status, NT_STATUS_NETWORK_NAME_DELETED))
+       {
                printf("smb2cli_read returned %s\n", nt_errstr(status));
                return false;
        }
@@ -619,7 +631,9 @@ bool run_smb2_session_reconnect(int dummy)
                        NULL, /* smb2_create_blobs *blobs */
                        &fid_persistent,
                        &fid_volatile);
-       if (!NT_STATUS_EQUAL(status, NT_STATUS_NETWORK_NAME_DELETED)) {
+       if (!NT_STATUS_EQUAL(status, NT_STATUS_NETWORK_NAME_DELETED) &&
+           !NT_STATUS_EQUAL(status, NT_STATUS_NETWORK_NAME_DELETED))
+       {
                printf("smb2cli_create on cli2 %s\n", nt_errstr(status));
                return false;
        }