diff options
author | Günther Deschner <gd@samba.org> | 2007-06-21 13:05:56 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:23:29 -0500 |
commit | 2592e68a43a73474e1bb53f83642c864fd159b45 (patch) | |
tree | a12a858026424d51b7785888eb1c1c537c812412 | |
parent | 0d956a8e45cd4421cddb8e077e1960dafac3a4d0 (diff) | |
download | samba-2592e68a43a73474e1bb53f83642c864fd159b45.tar.gz samba-2592e68a43a73474e1bb53f83642c864fd159b45.tar.xz samba-2592e68a43a73474e1bb53f83642c864fd159b45.zip |
r23564: Handle MSG_DUMP_EVENT_LIST only in winbindd for now.
Guenther
-rw-r--r-- | source/nsswitch/winbindd.c | 3 | ||||
-rw-r--r-- | source/nsswitch/winbindd_dual.c | 39 |
2 files changed, 42 insertions, 0 deletions
diff --git a/source/nsswitch/winbindd.c b/source/nsswitch/winbindd.c index c20f589434d..2eedbcbd0f0 100644 --- a/source/nsswitch/winbindd.c +++ b/source/nsswitch/winbindd.c @@ -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 */ diff --git a/source/nsswitch/winbindd_dual.c b/source/nsswitch/winbindd_dual.c index 2c2ef920466..cc15398d420 100644 --- a/source/nsswitch/winbindd_dual.c +++ b/source/nsswitch/winbindd_dual.c @@ -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; |