From f9961e5f82e0ef474d6492371bfdf9e74e208a99 Mon Sep 17 00:00:00 2001 From: Pavel Březina Date: Tue, 19 Mar 2013 15:53:44 +0100 Subject: DNS sites support - SRV lookup plugin interface https://fedorahosted.org/sssd/ticket/1032 Introduces two new error codes: - ERR_SRV_NOT_FOUND - ERR_SRV_LOOKUP_ERROR Since id_provider is authoritative in case of SRV plugin choise, ability to override the selected pluging during runtime is not desirable. We rely on the fact that id_provider is initialized before all other providers, thus the plugin is set correctly. --- src/providers/data_provider_fo.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/providers/data_provider_fo.c') diff --git a/src/providers/data_provider_fo.c b/src/providers/data_provider_fo.c index 04944e52..232717e7 100644 --- a/src/providers/data_provider_fo.c +++ b/src/providers/data_provider_fo.c @@ -233,6 +233,27 @@ int be_fo_service_add_callback(TALLOC_CTX *memctx, return EOK; } +void be_fo_set_srv_lookup_plugin(struct be_ctx *ctx, + fo_srv_lookup_plugin_send_t send_fn, + fo_srv_lookup_plugin_recv_t recv_fn, + void *pvt, + const char *plugin_name) +{ + bool bret; + + DEBUG(SSSDBG_TRACE_FUNC, ("Trying to set SRV lookup plugin to %s\n", + plugin_name)); + + bret = fo_set_srv_lookup_plugin(ctx->be_fo->fo_ctx, send_fn, recv_fn, pvt); + if (bret) { + DEBUG(SSSDBG_TRACE_FUNC, ("SRV lookup plugin is now %s\n", + plugin_name)); + } else { + DEBUG(SSSDBG_MINOR_FAILURE, ("Unable to set SRV lookup plugin, " + "another plugin may be already in place\n")); + } +} + int be_fo_add_srv_server(struct be_ctx *ctx, const char *service_name, const char *query_service, -- cgit