return false;
}
+ printf("OBNOX -- 1\n");
+
status = cli_session_setup_creds(cli1, torture_creds);
if (!NT_STATUS_IS_OK(status)) {
printf("cli_session_setup returned %s\n", nt_errstr(status));
return false;
}
+ printf("OBNOX -- 2\n");
+
status = cli_tree_connect(cli1, share, "?????", NULL);
if (!NT_STATUS_IS_OK(status)) {
printf("cli_tree_connect returned %s\n", nt_errstr(status));
return false;
}
+ printf("OBNOX -- 3\n");
+
status = smb2cli_create(cli1->conn, cli1->timeout, cli1->smb2.session,
cli1->smb2.tcon, "session-reconnect.txt",
SMB2_OPLOCK_LEVEL_NONE, /* oplock_level, */
return false;
}
+ printf("OBNOX -- 4\n");
+
status = smb2cli_write(cli1->conn, cli1->timeout, cli1->smb2.session,
cli1->smb2.tcon, strlen(hello), 0, fid_persistent,
fid_volatile, 0, 0, (const uint8_t *)hello, NULL);
return false;
}
+ printf("OBNOX -- 5\n");
+
status = smb2cli_flush(cli1->conn, cli1->timeout, cli1->smb2.session,
cli1->smb2.tcon, fid_persistent, fid_volatile);
if (!NT_STATUS_IS_OK(status)) {
return false;
}
+ printf("OBNOX -- 6\n");
+
status = smb2cli_read(cli1->conn, cli1->timeout, cli1->smb2.session,
cli1->smb2.tcon, 0x10000, 0, fid_persistent,
fid_volatile, 2, 0,
/* prepare second session */
+ printf("OBNOX -- 7\n");
+
if (!torture_init_connection(&cli2)) {
return false;
}
return false;
}
+ printf("OBNOX -- 8\n");
+
status = auth_generic_client_prepare(talloc_tos(), &auth_generic_state);
if (!NT_STATUS_IS_OK(status)) {
printf("auth_generic_client_prepare returned %s\n", nt_errstr(status));
return false;
}
+ printf("OBNOX -- 9\n");
+
gensec_want_feature(auth_generic_state->gensec_security,
GENSEC_FEATURE_SESSION_KEY);
return false;
}
+ printf("OBNOX -- 10\n");
+
cli2->smb2.session = smbXcli_session_create(cli2, cli2->conn);
subreq = smb2cli_session_setup_send(talloc_tos(), ev,
return false;
}
+ printf("OBNOX -- 11\n");
+
status = smb2cli_session_setup_recv(subreq, talloc_tos(),
NULL, &out_blob);
if (!NT_STATUS_EQUAL(status, NT_STATUS_MORE_PROCESSING_REQUIRED)) {
return false;
}
+ printf("OBNOX -- 12\n");
+
status = gensec_update(auth_generic_state->gensec_security,
talloc_tos(), out_blob, &in_blob);
if (!NT_STATUS_IS_OK(status)) {
return false;
}
+ printf("OBNOX -- 13\n");
+
subreq = smb2cli_session_setup_send(talloc_tos(), ev,
cli2->conn,
cli2->timeout,
return false;
}
+ printf("OBNOX -- 14\n");
+
status = smb2cli_session_setup_recv(subreq, talloc_tos(),
&recv_iov, &out_blob);
if (!NT_STATUS_IS_OK(status)) {
return false;
}
+ printf("OBNOX -- 15\n");
+
status = gensec_session_key(auth_generic_state->gensec_security, talloc_tos(),
&session_key);
if (!NT_STATUS_IS_OK(status)) {
/* check file operation on the old client */
+ printf("OBNOX -- 16\n");
+
status = smb2cli_flush(cli1->conn, cli1->timeout, cli1->smb2.session,
cli1->smb2.tcon, fid_persistent, fid_volatile);
if (!NT_STATUS_EQUAL(status, NT_STATUS_USER_SESSION_DELETED)) {
return false;
}
+ printf("OBNOX -- 17\n");
+
status = cli_tree_connect(cli1, share, "?????", NULL);
if (!NT_STATUS_EQUAL(status, NT_STATUS_USER_SESSION_DELETED)) {
printf("cli_tree_connect returned %s\n", nt_errstr(status));
return false;
}
+ printf("OBNOX -- 18\n");
+
/*
* checking file operations without signing.
* on w2k8r2 at least, flush, read and write also work the same way,
return false;
}
+ printf("OBNOX -- 20\n");
+
status = smb2cli_write(cli2->conn, cli2->timeout, cli2->smb2.session,
cli2->smb2.tcon, strlen(hello), 0, fid_persistent,
fid_volatile, 0, 0, (const uint8_t *)hello, NULL);
return false;
}
+ printf("OBNOX -- 21\n");
+
status = smb2cli_read(cli2->conn, cli2->timeout, cli2->smb2.session,
cli2->smb2.tcon, 0x10000, 0, fid_persistent,
fid_volatile, 2, 0,
return false;
}
+ printf("OBNOX -- 22\n");
+
status = smb2cli_create(cli2->conn, cli2->timeout, cli2->smb2.session,
cli2->smb2.tcon, "session-reconnect.txt",
SMB2_OPLOCK_LEVEL_NONE, /* oplock_level, */
/* now grab the session key and try with signing */
+ printf("OBNOX -- 23\n");
+
status = smb2cli_session_set_session_key(cli2->smb2.session,
session_key,
recv_iov);
/* the tid seems to be irrelevant at this stage */
+ printf("OBNOX -- 24\n");
+
status = smb2cli_flush(cli2->conn, cli2->timeout, cli2->smb2.session,
cli1->smb2.tcon, fid_persistent, fid_volatile);
if (!NT_STATUS_EQUAL(status, NT_STATUS_FILE_CLOSED) &&
return false;
}
+ printf("OBNOX -- 25\n");
+
status = smb2cli_write(cli2->conn, cli2->timeout, cli2->smb2.session,
cli1->smb2.tcon, strlen(hello), 0, fid_persistent,
fid_volatile, 0, 0, (const uint8_t *)hello, NULL);
return false;
}
+ printf("OBNOX -- 26\n");
+
status = smb2cli_read(cli2->conn, cli2->timeout, cli2->smb2.session,
cli1->smb2.tcon, 0x10000, 0, fid_persistent,
fid_volatile, 2, 0,
return false;
}
+ printf("OBNOX -- 27\n");
+
status = smb2cli_create(cli2->conn, cli2->timeout, cli2->smb2.session,
cli1->smb2.tcon, "session-reconnect.txt",
SMB2_OPLOCK_LEVEL_NONE, /* oplock_level, */
/* now do a new tcon and test file calls again */
+ printf("OBNOX -- 28\n");
+
status = cli_tree_connect(cli2, share, "?????", NULL);
if (!NT_STATUS_IS_OK(status)) {
printf("cli_tree_connect returned %s\n", nt_errstr(status));
return false;
}
+ printf("OBNOX -- 29\n");
+
status = smb2cli_create(cli2->conn, cli2->timeout, cli2->smb2.session,
cli2->smb2.tcon, "session-reconnect.txt",
SMB2_OPLOCK_LEVEL_NONE, /* oplock_level, */
return false;
}
+ printf("OBNOX -- 30\n");
+
status = smb2cli_write(cli2->conn, cli2->timeout, cli2->smb2.session,
cli2->smb2.tcon, strlen(hello), 0, fid_persistent,
fid_volatile, 0, 0, (const uint8_t *)hello, NULL);
return false;
}
+ printf("OBNOX -- 31\n");
+
status = smb2cli_flush(cli2->conn, cli2->timeout, cli2->smb2.session,
cli2->smb2.tcon, fid_persistent, fid_volatile);
if (!NT_STATUS_IS_OK(status)) {
return false;
}
+ printf("OBNOX -- 32\n");
+
status = smb2cli_read(cli2->conn, cli2->timeout, cli2->smb2.session,
cli2->smb2.tcon, 0x10000, 0, fid_persistent,
fid_volatile, 2, 0,
return false;
}
+ printf("OBNOX -- 33\n");
+
return true;
}