We need to use the connection that is used by the current request.
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
DATA_BLOB new_cookie = data_blob_null;
NTTIME now = timeval_to_nttime(&smb2req->request_time);
- status = smb2srv_open_recreate(smb2req->sconn->conn,
+ status = smb2srv_open_recreate(smb2req->xconn,
smb1req->conn->session_info,
persistent_id, create_guid,
now, &op);
uint32_t in_output_buffer_length,
const char *in_file_name)
{
- struct smbXsrv_connection *xconn = smb2req->sconn->conn;
+ struct smbXsrv_connection *xconn = smb2req->xconn;
struct tevent_req *req;
struct smbd_smb2_find_state *state;
struct smb_request *smbreq;
static void smbd_smb2_request_getinfo_done(struct tevent_req *subreq);
NTSTATUS smbd_smb2_request_process_getinfo(struct smbd_smb2_request *req)
{
- struct smbXsrv_connection *xconn = req->sconn->conn;
+ struct smbXsrv_connection *xconn = req->xconn;
NTSTATUS status;
const uint8_t *inbody;
uint8_t in_info_type;
break;
case FSCTL_VALIDATE_NEGOTIATE_INFO:
status = fsctl_validate_neg_info(state, ev,
- state->smbreq->sconn->conn,
+ state->smbreq->xconn,
&state->in_input,
state->in_max_output,
&state->out_output,
*/
void reply_smb20ff(struct smb_request *req, uint16_t choice)
{
- struct smbXsrv_connection *xconn = req->sconn->conn;
+ struct smbXsrv_connection *xconn = req->xconn;
xconn->smb2.allow_2ff = true;
reply_smb20xx(req, SMB2_DIALECT_REVISION_2FF);
}
NTSTATUS smbd_smb2_request_process_negprot(struct smbd_smb2_request *req)
{
- struct smbXsrv_connection *xconn = req->sconn->conn;
+ struct smbXsrv_connection *xconn = req->xconn;
NTSTATUS status;
const uint8_t *inbody;
const uint8_t *indyn = NULL;
static void smbd_smb2_request_notify_done(struct tevent_req *subreq);
NTSTATUS smbd_smb2_request_process_notify(struct smbd_smb2_request *req)
{
- struct smbXsrv_connection *xconn = req->sconn->conn;
+ struct smbXsrv_connection *xconn = req->xconn;
NTSTATUS status;
const uint8_t *inbody;
uint16_t in_flags;
static void smbd_smb2_request_read_done(struct tevent_req *subreq);
NTSTATUS smbd_smb2_request_process_read(struct smbd_smb2_request *req)
{
- struct smbXsrv_connection *xconn = req->sconn->conn;
+ struct smbXsrv_connection *xconn = req->xconn;
NTSTATUS status;
const uint8_t *inbody;
uint32_t in_length;
uint64_t in_offset = state->in_offset;
files_struct *fsp = state->fsp;
const DATA_BLOB *hdr = state->smb2req->queue_entry.sendfile_header;
- struct smbXsrv_connection *xconn = state->smb2req->sconn->conn;
+ struct smbXsrv_connection *xconn = state->smb2req->xconn;
ssize_t nread;
ssize_t ret;
int saved_errno;
* Ensure that any outstanding requests don't also refer
* to it.
*/
- xconn = state->smb2req->sconn->conn;
+ xconn = state->smb2req->xconn;
for (preq = xconn->smb2.requests; preq != NULL; preq = preq->next) {
if (preq == state->smb2req) {
state->in_security_buffer = in_security_buffer;
if (in_flags & SMB2_SESSION_FLAG_BINDING) {
- if (smb2req->sconn->conn->protocol < PROTOCOL_SMB2_22) {
+ if (smb2req->xconn->protocol < PROTOCOL_SMB2_22) {
tevent_req_nterror(req, NT_STATUS_REQUEST_NOT_ACCEPTED);
return tevent_req_post(req, ev);
}
if (state->in_session_id == 0) {
/* create a new session */
- status = smbXsrv_session_create(state->smb2req->sconn->conn,
+ status = smbXsrv_session_create(state->smb2req->xconn,
now, &state->session);
if (tevent_req_nterror(req, status)) {
return tevent_req_post(req, ev);
}
} else {
- status = smb2srv_session_lookup(state->smb2req->sconn->conn,
+ status = smb2srv_session_lookup(state->smb2req->xconn,
state->in_session_id, now,
&state->session);
if (NT_STATUS_EQUAL(status, NT_STATUS_NETWORK_SESSION_EXPIRED)) {
struct smbd_smb2_logout_state *state;
struct tevent_req *subreq;
struct smbd_smb2_request *preq;
- struct smbXsrv_connection *xconn = smb2req->sconn->conn;
+ struct smbXsrv_connection *xconn = smb2req->xconn;
req = tevent_req_create(mem_ctx, &state,
struct smbd_smb2_logout_state);
static void smbd_smb2_request_setinfo_done(struct tevent_req *subreq);
NTSTATUS smbd_smb2_request_process_setinfo(struct smbd_smb2_request *req)
{
- struct smbXsrv_connection *xconn = req->sconn->conn;
+ struct smbXsrv_connection *xconn = req->xconn;
NTSTATUS status;
const uint8_t *inbody;
uint8_t in_info_type;
uint32_t *out_maximal_access,
uint32_t *out_tree_id)
{
- struct smbXsrv_connection *conn = req->sconn->conn;
+ struct smbXsrv_connection *conn = req->xconn;
const char *share = in_path;
char *service = NULL;
int snum = -1;
struct smbd_smb2_tdis_state *state;
struct tevent_req *subreq;
struct smbd_smb2_request *preq;
- struct smbXsrv_connection *xconn = smb2req->sconn->conn;
+ struct smbXsrv_connection *xconn = smb2req->xconn;
req = tevent_req_create(mem_ctx, &state,
struct smbd_smb2_tdis_state);
static void smbd_smb2_request_write_done(struct tevent_req *subreq);
NTSTATUS smbd_smb2_request_process_write(struct smbd_smb2_request *req)
{
- struct smbXsrv_connection *xconn = req->sconn->conn;
+ struct smbXsrv_connection *xconn = req->xconn;
NTSTATUS status;
const uint8_t *inbody;
uint16_t in_data_offset;