summaryrefslogtreecommitdiffstats
path: root/src/providers/ldap/ldap_init.c
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2012-02-03 14:08:07 +0100
committerStephen Gallagher <sgallagh@redhat.com>2012-02-05 19:16:16 -0500
commitcc84fd46f356c4a36a721ab135a33ec77c93e34d (patch)
tree256214d053417e3ee63a5f83038d3dbea10eca1d /src/providers/ldap/ldap_init.c
parent9e80079370ff3b943832adc3c5ef430e64be0a0c (diff)
downloadsssd-cc84fd46f356c4a36a721ab135a33ec77c93e34d.tar.gz
sssd-cc84fd46f356c4a36a721ab135a33ec77c93e34d.tar.xz
sssd-cc84fd46f356c4a36a721ab135a33ec77c93e34d.zip
AUTOFS: LDAP provider
Diffstat (limited to 'src/providers/ldap/ldap_init.c')
-rw-r--r--src/providers/ldap/ldap_init.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/providers/ldap/ldap_init.c b/src/providers/ldap/ldap_init.c
index dd61a1e1a..8c98c8eaa 100644
--- a/src/providers/ldap/ldap_init.c
+++ b/src/providers/ldap/ldap_init.c
@@ -27,6 +27,7 @@
#include "providers/ldap/sdap_async_private.h"
#include "providers/ldap/sdap_access.h"
#include "providers/ldap/sdap_sudo.h"
+#include "providers/ldap/sdap_autofs.h"
static void sdap_shutdown(struct be_req *req);
@@ -411,6 +412,36 @@ int sssm_ldap_sudo_init(struct be_ctx *be_ctx,
return sdap_sudo_init(be_ctx, id_ctx, ops, &data);
}
+int sssm_ldap_autofs_init(struct be_ctx *be_ctx,
+ struct bet_ops **ops,
+ void **pvt_data)
+{
+#ifdef BUILD_AUTOFS
+ struct sdap_id_ctx *id_ctx;
+ void *data;
+ int ret;
+
+ ret = sssm_ldap_id_init(be_ctx, ops, &data);
+ if (ret != EOK) {
+ DEBUG(SSSDBG_CRIT_FAILURE, ("Cannot init LDAP ID provider [%d]: %s\n",
+ ret, strerror(ret)));
+ return ret;
+ }
+
+ id_ctx = talloc_get_type(data, struct sdap_id_ctx);
+ if (!id_ctx) {
+ DEBUG(SSSDBG_CRIT_FAILURE, ("No ID provider?\n"));
+ return EIO;
+ }
+
+ return sdap_autofs_init(be_ctx, id_ctx, ops, pvt_data);
+#else
+ DEBUG(SSSDBG_MINOR_FAILURE, ("Autofs init handler called but SSSD is "
+ "built without autofs support, ignoring\n"));
+ return EOK;
+#endif
+}
+
static void sdap_shutdown(struct be_req *req)
{
/* TODO: Clean up any internal data */