uint8_t *param, uint32_t num_param, uint32_t max_param,
uint8_t *data, uint32_t num_data, uint32_t max_data);
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,
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);
static void cli_posix_link_internal_done(struct tevent_req *subreq)
{
- NTSTATUS status = cli_trans_recv(subreq, NULL, NULL, 0, NULL,
+ NTSTATUS status = cli_trans_recv(subreq, NULL, NULL, NULL, 0, NULL,
NULL, 0, NULL, NULL, 0, NULL);
tevent_req_simple_finish_ntstatus(subreq, status);
}
static void cli_posix_chown_chmod_internal_done(struct tevent_req *subreq)
{
- NTSTATUS status = cli_trans_recv(subreq, NULL, NULL, 0, NULL,
+ NTSTATUS status = cli_trans_recv(subreq, NULL, NULL, NULL, 0, NULL,
NULL, 0, NULL, NULL, 0, NULL);
tevent_req_simple_finish_ntstatus(subreq, status);
}
static void cli_nt_delete_on_close_done(struct tevent_req *subreq)
{
- NTSTATUS status = cli_trans_recv(subreq, NULL, NULL, 0, NULL,
+ NTSTATUS status = cli_trans_recv(subreq, NULL, NULL, NULL, 0, NULL,
NULL, 0, NULL, NULL, 0, NULL);
tevent_req_simple_finish_ntstatus(subreq, status);
}
static void cli_ftruncate_done(struct tevent_req *subreq)
{
- NTSTATUS status = cli_trans_recv(subreq, NULL, NULL, 0, NULL,
+ NTSTATUS status = cli_trans_recv(subreq, NULL, NULL, NULL, 0, NULL,
NULL, 0, NULL, NULL, 0, NULL);
tevent_req_simple_finish_ntstatus(subreq, status);
}
static void cli_posix_unlock_internal_done(struct tevent_req *subreq)
{
- NTSTATUS status = cli_trans_recv(subreq, NULL, NULL, 0, NULL,
+ NTSTATUS status = cli_trans_recv(subreq, NULL, NULL, NULL, 0, NULL,
NULL, 0, NULL, NULL, 0, NULL);
tevent_req_simple_finish_ntstatus(subreq, status);
}
uint8_t *data;
uint32_t num_data;
- status = cli_trans_recv(subreq, state, NULL, 0, NULL, NULL, 0, NULL,
- &data, 12, &num_data);
+ status = cli_trans_recv(subreq, state, NULL, NULL, 0, NULL,
+ NULL, 0, NULL, &data, 12, &num_data);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
static void cli_posix_unlink_internal_done(struct tevent_req *subreq)
{
- NTSTATUS status = cli_trans_recv(subreq, NULL, NULL, 0, NULL,
+ NTSTATUS status = cli_trans_recv(subreq, NULL, NULL, NULL, 0, NULL,
NULL, 0, NULL, NULL, 0, NULL);
tevent_req_simple_finish_ntstatus(subreq, status);
}
uint8_t *params;
uint32_t i, ofs, num_params;
- status = cli_trans_recv(subreq, talloc_tos(), NULL, 0, NULL,
+ status = cli_trans_recv(subreq, talloc_tos(), NULL, NULL, 0, NULL,
¶ms, 0, &num_params, NULL, 0, NULL);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
req, struct cli_qpathinfo_state);
NTSTATUS status;
- status = cli_trans_recv(subreq, state, NULL, 0, NULL, NULL, 0, NULL,
+ status = cli_trans_recv(subreq, state, NULL, NULL, 0, NULL,
+ NULL, 0, NULL,
&state->rdata, state->min_rdata,
&state->num_rdata);
if (!NT_STATUS_IS_OK(status)) {
uint32_t num_data;
NTSTATUS status;
- status = cli_trans_recv(subreq, state, NULL, 0, NULL, NULL, 0, NULL,
- &data, 12, &num_data);
+ status = cli_trans_recv(subreq, state, NULL, NULL, 0, NULL,
+ NULL, 0, NULL, &data, 12, &num_data);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
struct cli_set_unix_extensions_capabilities_state *state = tevent_req_data(
req, struct cli_set_unix_extensions_capabilities_state);
- NTSTATUS status = cli_trans_recv(subreq, NULL, NULL, 0, NULL,
+ NTSTATUS status = cli_trans_recv(subreq, NULL, NULL, NULL, 0, NULL,
NULL, 0, NULL, NULL, 0, NULL);
if (NT_STATUS_IS_OK(status)) {
state->cli->requested_posix_capabilities = IVAL(state->data, 4);
uint32_t num_data;
NTSTATUS status;
- status = cli_trans_recv(subreq, talloc_tos(), NULL, 0, NULL,
+ status = cli_trans_recv(subreq, talloc_tos(), NULL, NULL, 0, NULL,
NULL, 0, NULL, &data, 12, &num_data);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
setup, 1, 0,
param, 2, 0,
NULL, 0, 560,
+ NULL,
NULL, 0, NULL,
NULL, 0, NULL,
&rdata, 10, &rdata_count);
&setup, 1, 0, /* setup, length, max */
param, 4, 2, /* param, length, max */
NULL, 0, MIN(cli->max_xmit, 0xffff), /* data, length, max */
+ NULL, /* recv_flags2 */
NULL, 0, NULL, /* rsetup, length */
NULL, 0, NULL, /* rparam, length */
&rdata, 68, &data_len);
NULL, 0, 0, /* setup, length, max */
param, 8, 4, /* param, length, max */
NULL, 0, 0x10000, /* data, length, max */
+ NULL, /* recv_flags2 */
NULL, 0, NULL, /* rsetup, length */
NULL, 0, NULL,
&rdata, 0, &rdata_count);
uint16_t *rsetup;
struct trans_recvblob rparam;
struct trans_recvblob rdata;
+ uint16_t recv_flags2;
TALLOC_CTX *secondary_request_ctx;
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);
}
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,
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;
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)
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:
req, struct rpc_np_trans_state);
NTSTATUS status;
- status = cli_trans_recv(subreq, state, NULL, 0, NULL, NULL, 0, NULL,
+ status = cli_trans_recv(subreq, state, NULL, NULL, 0, NULL,
+ NULL, 0, NULL,
&state->rdata, 0, &state->rdata_len);
TALLOC_FREE(subreq);
if (NT_STATUS_EQUAL(status, NT_STATUS_BUFFER_TOO_SMALL)) {