just do the write. This is needed because the write could return
-1/EAGAIN for dgram sockets, if the socket buffer is nearly full. The
epoll loop then goes on forever.
This was causing some failures in 'make test'
struct cldap_socket *cldap = talloc_get_type(private, struct cldap_socket);
if (flags & EVENT_FD_WRITE) {
cldap_socket_send(cldap);
- } else if (flags & EVENT_FD_READ) {
+ }
+ if (flags & EVENT_FD_READ) {
cldap_socket_recv(cldap);
}
}
struct nbt_dgram_socket);
if (flags & EVENT_FD_WRITE) {
dgm_socket_send(dgmsock);
- } else if (flags & EVENT_FD_READ) {
+ }
+ if (flags & EVENT_FD_READ) {
dgm_socket_recv(dgmsock);
}
}
struct nbt_name_socket);
if (flags & EVENT_FD_WRITE) {
nbt_name_socket_send(nbtsock);
- } else if (flags & EVENT_FD_READ) {
+ }
+ if (flags & EVENT_FD_READ) {
nbt_name_socket_recv(nbtsock);
}
}
struct wrepl_socket);
if (flags & EVENT_FD_WRITE) {
wrepl_handler_send(wrepl_socket);
- return;
}
if (flags & EVENT_FD_READ) {
wrepl_handler_recv(wrepl_socket);