s3:torture:smb2: pass smb2-session-reconnect test (add generosity in error case)
[ddiss/samba.git] / source3 / torture / test_smb2.c
index 12f32aa07f09ec9d19f07e1d3c93401fed9c4ede..af0e1561d9ad329d03d227a2a1f9bd10d31c811b 100644 (file)
@@ -183,7 +183,7 @@ bool run_smb2_basic(int dummy)
        }
 
        saved_uid = smb2cli_session_current_id(cli->smb2.session);
-       status = smb2cli_logoff(cli);
+       status = smb2cli_logoff(cli->conn, cli->timeout, cli->smb2.session);
        if (!NT_STATUS_IS_OK(status)) {
                printf("smb2cli_logoff returned %s\n", nt_errstr(status));
                return false;
@@ -197,7 +197,7 @@ bool run_smb2_basic(int dummy)
 
        smb2cli_session_set_id_and_flags(cli->smb2.session, saved_uid, 0);
 
-       status = smb2cli_logoff(cli);
+       status = smb2cli_logoff(cli->conn, cli->timeout, cli->smb2.session);
        if (!NT_STATUS_EQUAL(status, NT_STATUS_USER_SESSION_DELETED)) {
                printf("2nd smb2cli_logoff returned %s\n", nt_errstr(status));
                return false;
@@ -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;
        }