{
return tevent_req_simple_recv_ntstatus(req);
}
-
-NTSTATUS smb1cli_echo(struct smbXcli_conn *conn, uint32_t timeout_msec,
- uint16_t num_echos, DATA_BLOB data)
-{
- TALLOC_CTX *frame = talloc_stackframe();
- struct tevent_context *ev;
- struct tevent_req *req;
- NTSTATUS status = NT_STATUS_NO_MEMORY;
-
- if (smbXcli_conn_has_async_calls(conn)) {
- /*
- * Can't use sync call while an async call is in flight
- */
- status = NT_STATUS_INVALID_PARAMETER;
- goto fail;
- }
- ev = samba_tevent_context_init(frame);
- if (ev == NULL) {
- goto fail;
- }
- req = smb1cli_echo_send(frame, ev, conn, timeout_msec, num_echos, data);
- if (req == NULL) {
- goto fail;
- }
- if (!tevent_req_poll_ntstatus(req, ev, &status)) {
- goto fail;
- }
- status = smb1cli_echo_recv(req);
- fail:
- TALLOC_FREE(frame);
- return status;
-}
tevent_req_received(req);
return status;
}
-
-NTSTATUS smb1cli_trans(TALLOC_CTX *mem_ctx, struct smbXcli_conn *conn,
- uint8_t trans_cmd,
- uint8_t additional_flags, uint8_t clear_flags,
- uint16_t additional_flags2, uint16_t clear_flags2,
- uint32_t timeout_msec,
- uint32_t pid,
- struct smbXcli_tcon *tcon,
- 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 *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)
-{
- TALLOC_CTX *frame = talloc_stackframe();
- struct tevent_context *ev;
- struct tevent_req *req;
- NTSTATUS status = NT_STATUS_NO_MEMORY;
-
- if (smbXcli_conn_has_async_calls(conn)) {
- /*
- * Can't use sync call while an async call is in flight
- */
- status = NT_STATUS_INVALID_PARAMETER_MIX;
- goto fail;
- }
-
- ev = samba_tevent_context_init(frame);
- if (ev == NULL) {
- goto fail;
- }
-
- req = smb1cli_trans_send(frame, ev, conn, trans_cmd,
- additional_flags, clear_flags,
- additional_flags2, clear_flags2,
- timeout_msec,
- pid, tcon, session,
- pipe_name, fid, function, flags,
- setup, num_setup, max_setup,
- param, num_param, max_param,
- data, num_data, max_data);
- if (req == NULL) {
- goto fail;
- }
-
- if (!tevent_req_poll_ntstatus(req, ev, &status)) {
- goto fail;
- }
-
- status = smb1cli_trans_recv(req, mem_ctx, recv_flags2,
- rsetup, min_rsetup, num_rsetup,
- rparam, min_rparam, num_rparam,
- rdata, min_rdata, num_rdata);
- fail:
- TALLOC_FREE(frame);
- return status;
-}
uint32_t *num_param,
uint8_t **data, uint32_t min_data,
uint32_t *num_data);
-NTSTATUS smb1cli_trans(TALLOC_CTX *mem_ctx, struct smbXcli_conn *conn,
- uint8_t trans_cmd,
- uint8_t additional_flags, uint8_t clear_flags,
- uint16_t additional_flags2, uint16_t clear_flags2,
- uint32_t timeout_msec,
- uint32_t pid,
- struct smbXcli_tcon *tcon,
- 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 *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);
struct tevent_req *smb1cli_echo_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
uint16_t num_echos,
DATA_BLOB data);
NTSTATUS smb1cli_echo_recv(struct tevent_req *req);
-NTSTATUS smb1cli_echo(struct smbXcli_conn *conn, uint32_t timeout_msec,
- uint16_t num_echos, DATA_BLOB data);
struct tevent_req *smb1cli_session_setup_lm21_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,