* @retval The return value from the asynchronously called syscall
*/
-ssize_t async_syscall_result_ssize_t(struct async_req **req, int *perrno)
+ssize_t async_syscall_result_ssize_t(struct async_req *req, int *perrno)
{
struct async_syscall_state *state = talloc_get_type_abort(
- (*req)->private_data, struct async_syscall_state);
-
- int sys_errno = state->sys_errno;
- ssize_t result = state->result.result_ssize_t;
-
- TALLOC_FREE(*req);
+ req->private_data, struct async_syscall_state);
- *perrno = sys_errno;
- return result;
+ *perrno = state->sys_errno;
+ return state->result.result_ssize_t;
}
/**
* @retval The return value from the asynchronously called syscall
*/
-size_t async_syscall_result_size_t(struct async_req **req, int *perrno)
+size_t async_syscall_result_size_t(struct async_req *req, int *perrno)
{
struct async_syscall_state *state = talloc_get_type_abort(
- (*req)->private_data, struct async_syscall_state);
-
- int sys_errno = state->sys_errno;
- size_t result = state->result.result_ssize_t;
-
- TALLOC_FREE(*req);
+ req->private_data, struct async_syscall_state);
- *perrno = sys_errno;
- return result;
+ *perrno = state->sys_errno;
+ return state->result.result_size_t;
}
/**
* @retval The return value from the asynchronously called syscall
*/
-ssize_t async_syscall_result_int(struct async_req **req, int *perrno)
+ssize_t async_syscall_result_int(struct async_req *req, int *perrno)
{
struct async_syscall_state *state = talloc_get_type_abort(
- (*req)->private_data, struct async_syscall_state);
-
- int sys_errno = state->sys_errno;
- int result = state->result.result_ssize_t;
-
- TALLOC_FREE(*req);
+ req->private_data, struct async_syscall_state);
- *perrno = sys_errno;
- return result;
+ *perrno = state->sys_errno;
+ return state->result.result_int;
}
/**
* "length" bytes
*/
-struct async_req *async_sendall(TALLOC_CTX *mem_ctx, struct event_context *ev,
- int fd, const void *buffer, size_t length,
- int flags)
+struct async_req *sendall_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
+ int fd, const void *buffer, size_t length,
+ int flags)
{
struct async_req *result;
struct async_syscall_state *state;
return result;
}
+NTSTATUS sendall_recv(struct async_req *req)
+{
+ return async_req_simple_recv(req);
+}
+
/**
* fde event handler for the "recv" syscall
* @param[in] ev The event context that sent us here
* async_recvall will call recv(2) until "length" bytes are received
*/
-struct async_req *async_recvall(TALLOC_CTX *mem_ctx, struct event_context *ev,
- int fd, void *buffer, size_t length,
- int flags)
+struct async_req *recvall_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
+ int fd, void *buffer, size_t length,
+ int flags)
{
struct async_req *result;
struct async_syscall_state *state;
return result;
}
+NTSTATUS recvall_recv(struct async_req *req)
+{
+ return async_req_simple_recv(req);
+}
+
/**
* fde event handler for connect(2)
* @param[in] ev The event context that sent us here