r23564: Handle MSG_DUMP_EVENT_LIST only in winbindd for now.
authorGünther Deschner <gd@samba.org>
Thu, 21 Jun 2007 13:05:56 +0000 (13:05 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:23:29 +0000 (12:23 -0500)
Guenther
(This used to be commit 2592e68a43a73474e1bb53f83642c864fd159b45)

source3/nsswitch/winbindd.c
source3/nsswitch/winbindd_dual.c

index c20f589434d7a611cb01c7d8ee90f3da6f143432..2eedbcbd0f00c02ea1fa3db61a88561a76b8d101 100644 (file)
@@ -1159,6 +1159,9 @@ int main(int argc, char **argv, char **envp)
        messaging_register(winbind_messaging_context(), NULL,
                           MSG_WINBIND_ONLINESTATUS, winbind_msg_onlinestatus);
 
+       messaging_register(winbind_messaging_context(), NULL,
+                          MSG_DUMP_EVENT_LIST, winbind_msg_dump_event_list);
+
        poptFreeContext(pc);
 
        netsamlogon_cache_init(); /* Non-critical */
index 2c2ef920466fa352045f76a5d3dc7f94341a2e2d..cc15398d420ae5c5751fcb9307551e5ea3f19f7b 100644 (file)
@@ -698,6 +698,29 @@ void winbind_msg_onlinestatus(struct messaging_context *msg_ctx,
        }
 }
 
+void winbind_msg_dump_event_list(struct messaging_context *msg_ctx,
+                                void *private_data,
+                                uint32_t msg_type,
+                                struct server_id server_id,
+                                DATA_BLOB *data)
+{
+       struct winbindd_child *child;
+
+       DEBUG(10,("winbind_msg_dump_event_list received\n"));
+
+       dump_event_list(winbind_event_context());
+
+       for (child = children; child != NULL; child = child->next) {
+
+               DEBUG(10,("winbind_msg_dump_event_list: sending message to pid %u\n",
+                       (unsigned int)child->pid));
+
+               messaging_send_buf(msg_ctx, pid_to_procid(child->pid),
+                                  MSG_DUMP_EVENT_LIST,
+                                  NULL, 0);
+       }
+
+}
 
 static void account_lockout_policy_handler(struct event_context *ctx,
                                           struct timed_event *te,
@@ -885,6 +908,18 @@ static void child_msg_onlinestatus(struct messaging_context *msg_ctx,
        talloc_destroy(mem_ctx);
 }
 
+static void child_msg_dump_event_list(struct messaging_context *msg,
+                                     void *private_data,
+                                     uint32_t msg_type,
+                                     struct server_id server_id,
+                                     DATA_BLOB *data)
+{
+       DEBUG(5,("child_msg_dump_event_list received\n"));
+
+       dump_event_list(winbind_event_context());
+}
+
+
 static BOOL fork_domain_child(struct winbindd_child *child)
 {
        int fdpair[2];
@@ -958,6 +993,8 @@ static BOOL fork_domain_child(struct winbindd_child *child)
                             MSG_WINBIND_ONLINE, NULL);
        messaging_deregister(winbind_messaging_context(),
                             MSG_WINBIND_ONLINESTATUS, NULL);
+       messaging_deregister(winbind_messaging_context(),
+                            MSG_DUMP_EVENT_LIST, NULL);
 
        /* Handle online/offline messages. */
        messaging_register(winbind_messaging_context(), NULL,
@@ -966,6 +1003,8 @@ static BOOL fork_domain_child(struct winbindd_child *child)
                           MSG_WINBIND_ONLINE, child_msg_online);
        messaging_register(winbind_messaging_context(), NULL,
                           MSG_WINBIND_ONLINESTATUS, child_msg_onlinestatus);
+       messaging_register(winbind_messaging_context(), NULL,
+                          MSG_DUMP_EVENT_LIST, child_msg_dump_event_list);
 
        if ( child->domain ) {
                child->domain->startup = True;