From 2d226b2717d0a30186636d17a8d890e1b7de8151 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Thu, 10 Oct 2013 10:01:40 +0200 Subject: s3-winbind: Add functions for domain online/offline handling. BUG: https://bugzilla.samba.org/show_bug.cgi?id=10194 Signed-off-by: Andreas Schneider Reviewed-by: Volker Lendecke (cherry picked from commit 447ec17a6bec814a2ac5cadb74dbef5789f07c52) --- source3/winbindd/winbindd_cm.c | 40 +++++++++++++++++++++++++++++++++++++++ source3/winbindd/winbindd_proto.h | 10 ++++++++++ 2 files changed, 50 insertions(+) diff --git a/source3/winbindd/winbindd_cm.c b/source3/winbindd/winbindd_cm.c index c502e8394c9..34955cd744a 100644 --- a/source3/winbindd/winbindd_cm.c +++ b/source3/winbindd/winbindd_cm.c @@ -337,6 +337,46 @@ static void calc_new_online_timeout_check(struct winbindd_domain *domain) } } +void winbind_msg_domain_offline(struct messaging_context *msg_ctx, + void *private_data, + uint32_t msg_type, + struct server_id server_id, + DATA_BLOB *data) +{ + const char *domain_name = (const char *)data->data; + struct winbindd_domain *domain; + + domain = find_domain_from_name_noinit(domain_name); + if (domain == NULL) { + return; + } + + domain->online = false; + + DEBUG(10, ("Domain %s is marked as offline now.\n", + domain_name)); +} + +void winbind_msg_domain_online(struct messaging_context *msg_ctx, + void *private_data, + uint32_t msg_type, + struct server_id server_id, + DATA_BLOB *data) +{ + const char *domain_name = (const char *)data->data; + struct winbindd_domain *domain; + + domain = find_domain_from_name_noinit(domain_name); + if (domain == NULL) { + return; + } + + domain->online = true; + + DEBUG(10, ("Domain %s is marked as online now.\n", + domain_name)); +} + /**************************************************************** Set domain offline and also add handler to put us back online if we detect a DC. diff --git a/source3/winbindd/winbindd_proto.h b/source3/winbindd/winbindd_proto.h index a38d54cde2f..82176b2ef80 100644 --- a/source3/winbindd/winbindd_proto.h +++ b/source3/winbindd/winbindd_proto.h @@ -150,6 +150,16 @@ enum winbindd_result winbindd_dual_ccache_ntlm_auth(struct winbindd_domain *doma void winbindd_ccache_save(struct winbindd_cli_state *state); /* The following definitions come from winbindd/winbindd_cm.c */ +void winbind_msg_domain_offline(struct messaging_context *msg_ctx, + void *private_data, + uint32_t msg_type, + struct server_id server_id, + DATA_BLOB *data); +void winbind_msg_domain_online(struct messaging_context *msg_ctx, + void *private_data, + uint32_t msg_type, + struct server_id server_id, + DATA_BLOB *data); void set_domain_offline(struct winbindd_domain *domain); void set_domain_online_request(struct winbindd_domain *domain); -- cgit v1.2.1