diff options
author | Volker Lendecke <vl@samba.org> | 2010-08-05 12:48:52 +0200 |
---|---|---|
committer | Volker Lendecke <vl@samba.org> | 2010-08-05 13:57:29 +0200 |
commit | 0a224bc77b9bb59c72b9d79d9e8637837ffd878c (patch) | |
tree | 85a8f45f87cdce2cabd6ebebdbc4d23762490492 /source3/libsmb/clitrans.c | |
parent | a13b96f04a59ec9be9e72ffab4dc6b3f9e1b4dc3 (diff) | |
download | samba-0a224bc77b9bb59c72b9d79d9e8637837ffd878c.tar.gz samba-0a224bc77b9bb59c72b9d79d9e8637837ffd878c.tar.bz2 samba-0a224bc77b9bb59c72b9d79d9e8637837ffd878c.zip |
s3: Save the received trans2 from the inbuf in cli_trans
Diffstat (limited to 'source3/libsmb/clitrans.c')
-rw-r--r-- | source3/libsmb/clitrans.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/source3/libsmb/clitrans.c b/source3/libsmb/clitrans.c index 56580e6a6d..dd0873d824 100644 --- a/source3/libsmb/clitrans.c +++ b/source3/libsmb/clitrans.c @@ -720,6 +720,7 @@ struct cli_trans_state { uint16_t *rsetup; struct trans_recvblob rparam; struct trans_recvblob rdata; + uint16_t recv_flags2; TALLOC_CTX *secondary_request_ctx; @@ -1191,6 +1192,7 @@ static void cli_trans_done(struct tevent_req *subreq) if ((state->rparam.total == state->rparam.received) && (state->rdata.total == state->rdata.received)) { + state->recv_flags2 = SVAL(inbuf, smb_flg2); TALLOC_FREE(subreq); cli_state_seqnum_remove(state->cli, state->mid); tevent_req_done(req); @@ -1212,6 +1214,7 @@ static void cli_trans_done(struct tevent_req *subreq) } NTSTATUS cli_trans_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, + uint16_t *recv_flags2, uint16_t **setup, uint8_t min_setup, uint8_t *num_setup, uint8_t **param, uint32_t min_param, @@ -1233,6 +1236,10 @@ NTSTATUS cli_trans_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, return NT_STATUS_INVALID_NETWORK_RESPONSE; } + if (recv_flags2 != NULL) { + *recv_flags2 = state->recv_flags2; + } + if (setup != NULL) { *setup = talloc_move(mem_ctx, &state->rsetup); *num_setup = state->num_rsetup; @@ -1264,6 +1271,7 @@ NTSTATUS cli_trans(TALLOC_CTX *mem_ctx, struct cli_state *cli, uint16_t *setup, uint8_t num_setup, uint8_t max_setup, uint8_t *param, uint32_t num_param, uint32_t max_param, uint8_t *data, uint32_t num_data, uint32_t max_data, + uint16_t *recv_flags2, uint16_t **rsetup, uint8_t min_rsetup, uint8_t *num_rsetup, uint8_t **rparam, uint32_t min_rparam, uint32_t *num_rparam, uint8_t **rdata, uint32_t min_rdata, uint32_t *num_rdata) @@ -1302,7 +1310,8 @@ NTSTATUS cli_trans(TALLOC_CTX *mem_ctx, struct cli_state *cli, goto fail; } - status = cli_trans_recv(req, mem_ctx, rsetup, min_rsetup, num_rsetup, + status = cli_trans_recv(req, mem_ctx, recv_flags2, + rsetup, min_rsetup, num_rsetup, rparam, min_rparam, num_rparam, rdata, min_rdata, num_rdata); fail: |