This moves the SMB1 specific stuff to cli_smb_req_create(),
instead of having it in the core dispatching code.
metze
int chain_num;
int chain_length;
struct tevent_req **chained_requests;
int chain_num;
int chain_length;
struct tevent_req **chained_requests;
};
static uint16_t cli_alloc_mid(struct cli_state *cli)
};
static uint16_t cli_alloc_mid(struct cli_state *cli)
tevent_req_oom(result);
}
}
tevent_req_oom(result);
}
}
+
+ switch (smb_command) {
+ case SMBtranss:
+ case SMBtranss2:
+ case SMBnttranss:
+ case SMBntcancel:
+ state->one_way = true;
+ break;
+ case SMBlockingX:
+ if ((wct == 8) &&
+ (CVAL(vwv+3, 0) == LOCKING_ANDX_OPLOCK_RELEASE)) {
+ state->one_way = true;
+ }
+ break;
+ }
+
- switch (CVAL(state->header, smb_com)) {
- case SMBtranss:
- case SMBtranss2:
- case SMBnttranss:
- case SMBntcancel:
state->inbuf = NULL;
tevent_req_done(req);
return;
state->inbuf = NULL;
tevent_req_done(req);
return;
- case SMBlockingX:
- if ((CVAL(state->header, smb_wct) == 8) &&
- (CVAL(state->vwv+3, 0) == LOCKING_ANDX_OPLOCK_RELEASE)) {
- state->inbuf = NULL;
- tevent_req_done(req);
- return;
- }
}
if (!cli_smb_req_set_pending(req)) {
}
if (!cli_smb_req_set_pending(req)) {