summaryrefslogtreecommitdiff
path: root/source4/libcli/resolve
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2005-02-03 02:35:52 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:09:29 -0500
commit66170ef8b36b499aa5b44ef10c1bd362a50f2636 (patch)
tree5bfb3d759ad397a6a42588b97802e237781c35e8 /source4/libcli/resolve
parent1774b36c1464e1f04f982b83577e62fa31cbeef9 (diff)
downloadsamba-66170ef8b36b499aa5b44ef10c1bd362a50f2636.tar.gz
samba-66170ef8b36b499aa5b44ef10c1bd362a50f2636.tar.bz2
samba-66170ef8b36b499aa5b44ef10c1bd362a50f2636.zip
r5185: make all the events data structures private to events.c. This will
make it possible to add optimisations to the events code such as keeping the next timed event in a sorted list, and using epoll for file descriptor events. I also removed the loop events code, as it wasn't being used anywhere, and changed timed events to always be one-shot (as adding a new timed event in the event handler is so easy to do if needed) (This used to be commit d7b4b6de51342a65bf46fce772d313f92f8d73d3)
Diffstat (limited to 'source4/libcli/resolve')
-rw-r--r--source4/libcli/resolve/host.c12
-rw-r--r--source4/libcli/resolve/resolve.c1
2 files changed, 5 insertions, 8 deletions
diff --git a/source4/libcli/resolve/host.c b/source4/libcli/resolve/host.c
index 9bf278154d..977c804a4a 100644
--- a/source4/libcli/resolve/host.c
+++ b/source4/libcli/resolve/host.c
@@ -83,9 +83,9 @@ static void run_child(struct composite_context *c, int fd)
handle a read event on the pipe
*/
static void pipe_handler(struct event_context *ev, struct fd_event *fde,
- struct timeval t, uint16_t flags)
+ struct timeval t, uint16_t flags, void *private)
{
- struct composite_context *c = talloc_get_type(fde->private, struct composite_context);
+ struct composite_context *c = talloc_get_type(private, struct composite_context);
struct host_state *state = talloc_get_type(c->private, struct host_state);
char address[128];
int ret;
@@ -136,7 +136,6 @@ struct composite_context *resolve_name_host_send(struct nbt_name *name,
struct host_state *state;
NTSTATUS status;
int fd[2] = { -1, -1 };
- struct fd_event fde;
int ret;
c = talloc_zero(NULL, struct composite_context);
@@ -161,11 +160,8 @@ struct composite_context *resolve_name_host_send(struct nbt_name *name,
/* we need to put the child in our event context so
we know when the gethostbyname() has finished */
- fde.fd = state->child_fd;
- fde.flags = EVENT_FD_READ;
- fde.handler = pipe_handler;
- fde.private = c;
- state->fde = event_add_fd(c->event_ctx, &fde, state);
+ state->fde = event_add_fd(c->event_ctx, state, state->child_fd, EVENT_FD_READ,
+ pipe_handler, c);
if (state->fde == NULL) {
close(fd[0]);
close(fd[1]);
diff --git a/source4/libcli/resolve/resolve.c b/source4/libcli/resolve/resolve.c
index eb35a7cb99..e2e9462561 100644
--- a/source4/libcli/resolve/resolve.c
+++ b/source4/libcli/resolve/resolve.c
@@ -21,6 +21,7 @@
*/
#include "includes.h"
+#include "events.h"
#include "libcli/raw/libcliraw.h"
#include "libcli/composite/composite.h"