uint16_t mid;
uint32_t pid;
uint16_t tid;
- uint16_t uid;
+ struct smbXcli_session *session;
const char *pipe_name;
uint8_t *pipe_name_conv;
size_t pipe_name_conv_len;
uint8_t additional_flags, uint8_t clear_flags,
uint16_t additional_flags2, uint16_t clear_flags2,
uint32_t timeout_msec,
- uint32_t pid, uint16_t tid, uint16_t uid,
+ uint32_t pid, uint16_t tid,
+ struct smbXcli_session *session,
const char *pipe_name, uint16_t fid, uint16_t function, int flags,
uint16_t *setup, uint8_t num_setup, uint8_t max_setup,
uint8_t *param, uint32_t num_param, uint32_t max_param,
state->rsetup = NULL;
state->pid = pid;
state->tid = tid;
- state->uid = uid;
+ state->session = session;
ZERO_STRUCT(state->rparam);
ZERO_STRUCT(state->rdata);
state->additional_flags2,
state->clear_flags2,
state->timeout_msec,
- state->pid, state->tid, state->uid,
+ state->pid, state->tid,
+ state->session,
wct, state->vwv,
iov_count, state->iov);
if (tevent_req_nomem(subreq, req)) {
state->additional_flags2,
state->clear_flags2,
state->timeout_msec,
- state->pid, state->tid, state->uid,
+ state->pid, state->tid,
+ state->session,
wct, state->vwv,
iov_count, state->iov);
if (tevent_req_nomem(subreq2, req)) {
state->additional_flags2,
state->clear_flags2,
state->timeout_msec,
- state->pid, state->tid, state->uid,
+ state->pid, state->tid,
+ state->session,
wct, state->vwv,
iov_count, state->iov);
if (tevent_req_nomem(subreq2, req)) {
uint8_t additional_flags, uint8_t clear_flags,
uint16_t additional_flags2, uint16_t clear_flags2,
uint32_t timeout_msec,
- uint32_t pid, uint16_t tid, uint16_t uid,
+ uint32_t pid, uint16_t tid,
+ struct smbXcli_session *session,
const char *pipe_name, uint16_t fid, uint16_t function,
int flags,
uint16_t *setup, uint8_t num_setup, uint8_t max_setup,
additional_flags, clear_flags,
additional_flags2, clear_flags2,
timeout_msec,
- pid, tid, uid,
+ pid, tid, session,
pipe_name, fid, function, flags,
setup, num_setup, max_setup,
param, num_param, max_param,
uint16_t flags2;
uint32_t pid;
uint16_t tid;
- uint16_t uid;
uint16_t mid;
struct tevent_req *subreq;
NTSTATUS status;
pid = SVAL(state->smb1.hdr, HDR_PID);
pid |= SVAL(state->smb1.hdr, HDR_PIDHIGH)<<16;
tid = SVAL(state->smb1.hdr, HDR_TID);
- uid = SVAL(state->smb1.hdr, HDR_UID);
mid = SVAL(state->smb1.hdr, HDR_MID);
subreq = smb1cli_req_create(state, state->ev,
flags, 0,
flags2, 0,
0, /* timeout */
- pid, tid, uid,
+ pid, tid,
+ state->session,
0, NULL, /* vwv */
0, NULL); /* bytes */
if (subreq == NULL) {
uint32_t timeout_msec,
uint32_t pid,
uint16_t tid,
- uint16_t uid,
+ struct smbXcli_session *session,
uint8_t wct, uint16_t *vwv,
int iov_count,
struct iovec *bytes_iov)
struct smbXcli_req_state *state;
uint8_t flags = 0;
uint16_t flags2 = 0;
+ uint16_t uid = 0;
if (iov_count > MAX_SMB_IOV) {
/*
}
state->ev = ev;
state->conn = conn;
+ state->session = session;
+
+ if (session) {
+ uid = session->smb1.session_id;
+ }
state->smb1.recv_cmd = 0xFF;
state->smb1.recv_status = NT_STATUS_INTERNAL_ERROR;
uint32_t timeout_msec,
uint32_t pid,
uint16_t tid,
- uint16_t uid,
+ struct smbXcli_session *session,
uint8_t wct, uint16_t *vwv,
uint32_t num_bytes,
const uint8_t *bytes)
additional_flags, clear_flags,
additional_flags2, clear_flags2,
timeout_msec,
- pid, tid, uid,
+ pid, tid, session,
wct, vwv, 1, &iov);
if (req == NULL) {
return NULL;
flags, ~flags,
flags2, ~flags2,
state->timeout_msec,
- 0xFFFE, 0, 0, /* pid, tid, uid */
+ 0xFFFE, 0, NULL, /* pid, tid, session */
0, NULL, /* wct, vwv */
bytes.length, bytes.data);
}
uint32_t timeout_msec,
uint32_t pid,
uint16_t tid,
- uint16_t uid,
+ struct smbXcli_session *session,
uint8_t wct, uint16_t *vwv,
int iov_count,
struct iovec *bytes_iov);
uint32_t timeout_msec,
uint32_t pid,
uint16_t tid,
- uint16_t uid,
+ struct smbXcli_session *session,
uint8_t wct, uint16_t *vwv,
uint32_t num_bytes,
const uint8_t *bytes);
uint8_t additional_flags, uint8_t clear_flags,
uint16_t additional_flags2, uint16_t clear_flags2,
uint32_t timeout_msec,
- uint32_t pid, uint16_t tid, uint16_t uid,
+ uint32_t pid, uint16_t tid,
+ struct smbXcli_session *session,
const char *pipe_name, uint16_t fid, uint16_t function, int flags,
uint16_t *setup, uint8_t num_setup, uint8_t max_setup,
uint8_t *param, uint32_t num_param, uint32_t max_param,
uint8_t additional_flags, uint8_t clear_flags,
uint16_t additional_flags2, uint16_t clear_flags2,
uint32_t timeout_msec,
- uint32_t pid, uint16_t tid, uint16_t uid,
+ uint32_t pid, uint16_t tid,
+ struct smbXcli_session *session,
const char *pipe_name, uint16_t fid, uint16_t function,
int flags,
uint16_t *setup, uint8_t num_setup, uint8_t max_setup,
uint8_t clear_flags = 0;
uint16_t additional_flags2 = 0;
uint16_t clear_flags2 = 0;
- uint16_t uid = 0;
state = talloc_zero(mem_ctx, struct cli_smb_req_state);
if (state == NULL) {
additional_flags2 |= FLAGS2_DFS_PATHNAMES;
}
- uid = cli_state_get_uid(cli);
state->req = smb1cli_req_create(state, ev, cli->conn, smb_command,
additional_flags, clear_flags,
additional_flags2, clear_flags2,
cli->timeout,
cli->smb1.pid,
cli->smb1.tid,
- uid,
+ cli->smb1.session,
wct, vwv, iov_count, bytes_iov);
if (state->req == NULL) {
talloc_free(state);
uint8_t clear_flags = 0;
uint16_t additional_flags2 = 0;
uint16_t clear_flags2 = 0;
- uint16_t uid = 0;
state = talloc_zero(mem_ctx, struct cli_smb_req_state);
if (state == NULL) {
additional_flags2 |= FLAGS2_DFS_PATHNAMES;
}
- uid = cli_state_get_uid(cli);
state->req = smb1cli_req_send(state, ev, cli->conn, smb_command,
additional_flags, clear_flags,
additional_flags2, clear_flags2,
cli->timeout,
cli->smb1.pid,
cli->smb1.tid,
- uid,
+ cli->smb1.session,
wct, vwv, num_bytes, bytes);
if (state->req == NULL) {
talloc_free(state);
uint8_t clear_flags = 0;
uint16_t additional_flags2 = 0;
uint16_t clear_flags2 = 0;
- uint16_t uid = 0;
state = talloc_zero(mem_ctx, struct cli_trans_state);
if (state == NULL) {
additional_flags2 |= FLAGS2_DFS_PATHNAMES;
}
- uid = cli_state_get_uid(cli);
state->req = smb1cli_trans_send(state, ev,
cli->conn, cmd,
additional_flags, clear_flags,
additional_flags2, clear_flags2,
cli->timeout,
- cli->smb1.pid, cli->smb1.tid, uid,
+ cli->smb1.pid, cli->smb1.tid,
+ cli->smb1.session,
pipe_name, fid, function, flags,
setup, num_setup, max_setup,
param, num_param, max_param,
uint8_t clear_flags = 0;
uint16_t additional_flags2 = 0;
uint16_t clear_flags2 = 0;
- uint16_t uid = 0;
if (cli->case_sensitive) {
clear_flags |= FLAG_CASELESS_PATHNAMES;
additional_flags2 |= FLAGS2_DFS_PATHNAMES;
}
- uid = cli_state_get_uid(cli);
status = smb1cli_trans(mem_ctx,
cli->conn, trans_cmd,
additional_flags, clear_flags,
additional_flags2, clear_flags2,
cli->timeout,
- cli->smb1.pid, cli->smb1.tid, uid,
+ cli->smb1.pid, cli->smb1.tid,
+ cli->smb1.session,
pipe_name, fid, function, flags,
setup, num_setup, max_setup,
param, num_param, max_param,
uint16_t clear_flags2;
uint32_t pid;
uint16_t tid;
- uint16_t uid;
+ struct smbXcli_session *session = NULL;
uint32_t timeout_msec = transport->options.request_timeout * 1000;
struct iovec *bytes_iov = NULL;
struct tevent_req *subreq = NULL;
pid = SVAL(req->out.hdr, HDR_PID);
pid |= SVAL(req->out.hdr, HDR_PIDHIGH)<<16;
tid = SVAL(req->out.hdr, HDR_TID);
- uid = SVAL(req->out.hdr, HDR_UID);
clear_flags = ~additional_flags;
clear_flags2 = ~additional_flags2;
+ if (req->session) {
+ session = req->session->smbXcli;
+ }
+
bytes_iov = talloc(req, struct iovec);
if (bytes_iov == NULL) {
return NULL;
timeout_msec,
pid,
tid,
- uid,
+ session,
req->out.wct,
(uint16_t *)req->out.vwv,
1, bytes_iov);
0, /* timeout_msec */
0, /* pid */
0, /* tid */
- 0, /* uid */
+ NULL, /* session */
0, /* wct */
NULL, /* vwv */
0, /* iov_count */
0, /* timeout_msec */
0, /* pid */
0, /* tid */
- 0, /* uid */
+ NULL, /* session */
0, /* wct */
NULL, /* vwv */
0, /* iov_count */
uint16_t clear_flags2;
uint32_t pid;
uint16_t tid;
- uint16_t uid;
+ struct smbXcli_session *session = NULL;
const char *pipe_name = NULL;
uint8_t s;
uint32_t timeout_msec;
pid = SVAL(req->out.hdr, HDR_PID);
pid |= SVAL(req->out.hdr, HDR_PIDHIGH)<<16;
tid = SVAL(req->out.hdr, HDR_TID);
- uid = SVAL(req->out.hdr, HDR_UID);
+
+ if (req->session) {
+ session = req->session->smbXcli;
+ }
clear_flags = ~additional_flags;
clear_flags2 = ~additional_flags2;
additional_flags2,
clear_flags2,
timeout_msec,
- pid, tid, uid,
+ pid, tid,
+ session,
pipe_name,
0xFFFF, /* fid */
0, /* function */
uint16_t clear_flags2;
uint32_t pid;
uint16_t tid;
- uint16_t uid;
+ struct smbXcli_session *session = NULL;
uint32_t timeout_msec;
uint32_t tmp;
pid = SVAL(req->out.hdr, HDR_PID);
pid |= SVAL(req->out.hdr, HDR_PIDHIGH)<<16;
tid = SVAL(req->out.hdr, HDR_TID);
- uid = SVAL(req->out.hdr, HDR_UID);
+
+ if (req->session) {
+ session = req->session->smbXcli;
+ }
clear_flags = ~additional_flags;
clear_flags2 = ~additional_flags2;
additional_flags2,
clear_flags2,
timeout_msec,
- pid, tid, uid,
+ pid, tid,
+ session,
NULL, /* pipe_name */
0xFFFF, /* fid */
parms->in.function,