Revert "s3:winbindd: use tevent_loop_wait() in the main loop"
authorStefan Metzmacher <metze@samba.org>
Fri, 1 Mar 2013 10:20:34 +0000 (11:20 +0100)
committerStefan Metzmacher <metze@samba.org>
Tue, 4 Oct 2016 12:52:13 +0000 (14:52 +0200)
This reverts commit beefbd3b6d457179a7f8296f37269acdd342b1c3.

source3/winbindd/winbindd.c

index 5f26b08669f91c5a4c64e77e06bb468d1634e6d9..e498138b4a2e3fdb74557d60e479b205d30b9233 100644 (file)
@@ -1508,34 +1508,6 @@ static void winbindd_addr_changed(struct tevent_req *req)
        tevent_req_set_callback(req, winbindd_addr_changed, state);
 }
 
-
-struct winbindd_tevent_trace_state {
-       TALLOC_CTX *frame;
-};
-
-static void winbindd_tevent_trace_callback(enum tevent_trace_point point,
-                                          void *private_data)
-{
-       struct winbindd_tevent_trace_state *state =
-               talloc_get_type_abort(private_data,
-                                     struct winbindd_tevent_trace_state);
-
-       switch (point) {
-       case TEVENT_TRACE_BEFORE_WAIT:
-       case TEVENT_TRACE_AFTER_WAIT:
-               break;
-       case TEVENT_TRACE_BEFORE_LOOP_ONCE:
-               TALLOC_FREE(state->frame);
-               state->frame = talloc_stackframe();
-               errno = 0;
-               break;
-       case TEVENT_TRACE_AFTER_LOOP_ONCE:
-               TALLOC_FREE(state->frame);
-               break;
-       }
-}
-
-
 /* Main function */
 
 int main(int argc, const char **argv)
@@ -1566,9 +1538,6 @@ int main(int argc, const char **argv)
        TALLOC_CTX *frame;
        NTSTATUS status;
        bool ok;
-       int ret = 0;
-       struct tevent_context *ev_ctx = NULL;
-       struct winbindd_tevent_trace_state *trace_state = NULL;
 
        /*
         * Do this before any other talloc operation
@@ -1738,7 +1707,7 @@ int main(int argc, const char **argv)
        if (!init_names())
                exit(1);
 
-       load_interfaces();
+       load_interfaces();
 
        if (!secrets_init()) {
 
@@ -1833,35 +1802,19 @@ int main(int argc, const char **argv)
                daemon_ready("winbindd");
        }
 
+       TALLOC_FREE(frame);
        /* Loop waiting for requests */
+       while (1) {
+               frame = talloc_stackframe();
 
-       ev_ctx = winbind_event_context();
-       if (ev_ctx == NULL) {
-               DEBUG(0, ("%s: winbind_event_context() failed\n",
-                         __location__));
-               exit(1);
-       }
-
-       trace_state = talloc_zero(ev_ctx, struct winbindd_tevent_trace_state);
-       if (trace_state == NULL) {
-               DEBUG(0, ("talloc_zero(winbindd_tevent_trace_state).\n"));
-               exit(1);
-       }
-
-       trace_state->frame = frame;
-       frame = NULL;
-
-       tevent_set_trace_callback(ev_ctx, winbindd_tevent_trace_callback,
-                                 trace_state);
+               if (tevent_loop_once(winbind_event_context()) == -1) {
+                       DEBUG(1, ("tevent_loop_once() failed: %s\n",
+                                 strerror(errno)));
+                       return 1;
+               }
 
-       ret = tevent_loop_wait(ev_ctx);
-       if (ret != 0) {
-               DEBUG(0, ("tevent_loop_wait failed: %d, %s, exiting\n",
-                         ret, strerror(errno)));
-               exit(1);
+               TALLOC_FREE(frame);
        }
 
-       TALLOC_FREE(trace_state->frame);
-
        return 0;
 }