struct sock_client *client;
int client_fd, ret;
- client_fd = accept_recv(subreq, NULL, &ret);
+ client_fd = accept_recv(subreq, NULL, NULL, &ret);
TALLOC_FREE(subreq);
if (client_fd == -1) {
D_ERR("failed to accept new connection\n");
int client_fd;
int err = 0;
- client_fd = accept_recv(subreq, NULL, &err);
+ client_fd = accept_recv(subreq, NULL, NULL, &err);
TALLOC_FREE(subreq);
state->num_clients++;
int client_fd;
int ret = 0;
- client_fd = accept_recv(subreq, NULL, &ret);
+ client_fd = accept_recv(subreq, NULL, NULL, &ret);
TALLOC_FREE(subreq);
if (client_fd == -1) {
tevent_req_error(req, ret);
}
int accept_recv(struct tevent_req *req,
+ int *listen_sock,
struct samba_sockaddr *paddr,
int *perr)
{
struct accept_state *state = tevent_req_data(req, struct accept_state);
+ int sock = state->sock;
int err;
if (tevent_req_is_unix_error(req, &err)) {
if (perr != NULL) {
*perr = err;
}
+ tevent_req_received(req);
return -1;
}
+ if (listen_sock != NULL) {
+ *listen_sock = state->listen_sock;
+ }
if (paddr != NULL) {
*paddr = state->addr;
}
- return state->sock;
+ tevent_req_received(req);
+ return sock;
}
struct tevent_req *accept_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
int listen_sock);
int accept_recv(struct tevent_req *req,
+ int *listen_sock,
struct samba_sockaddr *paddr,
int *perr);