lib/events: use mem_context given to event_context_init().
[tprouty/samba.git] / source / lib / events.c
index befab3f5c009513ff3cf402d305d052e81de0911..8134a7ac1c2a9503f4696a5df21a873077f3903a 100644 (file)
@@ -188,14 +188,14 @@ void event_fd_set_not_readable(struct fd_event *fde)
  * Return if there's something in the queue
  */
 
-BOOL event_add_to_select_args(struct event_context *event_ctx,
+bool event_add_to_select_args(struct event_context *event_ctx,
                              const struct timeval *now,
                              fd_set *read_fds, fd_set *write_fds,
                              struct timeval *timeout, int *maxfd)
 {
        struct fd_event *fde;
        struct timeval diff;
-       BOOL ret = False;
+       bool ret = False;
 
        for (fde = event_ctx->fd_events; fde; fde = fde->next) {
                if (fde->flags & EVENT_FD_READ) {
@@ -223,7 +223,7 @@ BOOL event_add_to_select_args(struct event_context *event_ctx,
        return True;
 }
 
-BOOL events_pending(struct event_context *event_ctx)
+bool events_pending(struct event_context *event_ctx)
 {
        struct fd_event *fde;
 
@@ -238,10 +238,10 @@ BOOL events_pending(struct event_context *event_ctx)
        return False;
 }
 
-BOOL run_events(struct event_context *event_ctx,
+bool run_events(struct event_context *event_ctx,
                int selrtn, fd_set *read_fds, fd_set *write_fds)
 {
-       BOOL fired = False;
+       bool fired = False;
        struct fd_event *fde, *next;
 
        /* Run all events that are pending, not just one (as we
@@ -292,7 +292,7 @@ BOOL run_events(struct event_context *event_ctx,
                if (FD_ISSET(fde->fd, read_fds)) flags |= EVENT_FD_READ;
                if (FD_ISSET(fde->fd, write_fds)) flags |= EVENT_FD_WRITE;
 
-               if (flags) {
+               if (flags & fde->flags) {
                        fde->handler(event_ctx, fde, flags, fde->private_data);
                        fired = True;
                }
@@ -356,7 +356,7 @@ int event_loop_once(struct event_context *ev)
 
 struct event_context *event_context_init(TALLOC_CTX *mem_ctx)
 {
-       return TALLOC_ZERO_P(NULL, struct event_context);
+       return TALLOC_ZERO_P(mem_ctx, struct event_context);
 }
 
 int set_event_dispatch_time(struct event_context *event_ctx,