1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00

s3: Add poll_one_fd()

This commit is contained in:
Volker Lendecke 2011-02-07 16:55:16 +01:00 committed by Volker Lendecke
parent cf7d331511
commit deb58b2e94
2 changed files with 28 additions and 0 deletions

View File

@ -1333,6 +1333,7 @@ struct tevent_req *getaddrinfo_send(TALLOC_CTX *mem_ctx,
const char *service,
const struct addrinfo *hints);
int getaddrinfo_recv(struct tevent_req *req, struct addrinfo **res);
int poll_one_fd(int fd, int events, int timeout, int *revents);
struct tevent_req *tstream_read_packet_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct tstream_context *stream,

View File

@ -1766,3 +1766,30 @@ int getaddrinfo_recv(struct tevent_req *req, struct addrinfo **res)
}
return state->ret;
}
int poll_one_fd(int fd, int events, int timeout, int *revents)
{
struct pollfd *fds;
int ret;
int saved_errno;
fds = TALLOC_ZERO_ARRAY(talloc_tos(), struct pollfd, 2);
if (fds == NULL) {
errno = ENOMEM;
return -1;
}
fds[0].fd = fd;
fds[0].events = events;
ret = sys_poll(fds, 1, timeout);
/*
* Assign whatever poll did, even in the ret<=0 case.
*/
*revents = fds[0].revents;
saved_errno = errno;
TALLOC_FREE(fds);
errno = saved_errno;
return ret;
}