diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2013-10-10 10:01:40 +0200 |
---|---|---|
committer | Volker Lendecke <vl@samba.org> | 2013-10-11 11:50:08 +0200 |
commit | 447ec17a6bec814a2ac5cadb74dbef5789f07c52 (patch) | |
tree | 37459a1da0abc6ec8476472f8b9ebe99ecf76db5 /source3/winbindd | |
parent | 1a884636542ba0e54c6d209662a5d1613d727a85 (diff) | |
download | samba-447ec17a6bec814a2ac5cadb74dbef5789f07c52.tar.gz samba-447ec17a6bec814a2ac5cadb74dbef5789f07c52.tar.bz2 samba-447ec17a6bec814a2ac5cadb74dbef5789f07c52.zip |
s3-winbind: Add functions for domain online/offline handling.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=10194
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
Diffstat (limited to 'source3/winbindd')
-rw-r--r-- | source3/winbindd/winbindd_cm.c | 40 | ||||
-rw-r--r-- | source3/winbindd/winbindd_proto.h | 10 |
2 files changed, 50 insertions, 0 deletions
diff --git a/source3/winbindd/winbindd_cm.c b/source3/winbindd/winbindd_cm.c index 3906d3d1ff..cfd15ffc05 100644 --- a/source3/winbindd/winbindd_cm.c +++ b/source3/winbindd/winbindd_cm.c @@ -340,6 +340,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 b07f30331e..3df7d7c8ca 100644 --- a/source3/winbindd/winbindd_proto.h +++ b/source3/winbindd/winbindd_proto.h @@ -153,6 +153,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); |