summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--server/confdb/confdb.c41
-rw-r--r--server/examples/config.ldif2
2 files changed, 36 insertions, 7 deletions
diff --git a/server/confdb/confdb.c b/server/confdb/confdb.c
index f86df6ca..2313a113 100644
--- a/server/confdb/confdb.c
+++ b/server/confdb/confdb.c
@@ -509,9 +509,28 @@ static int confdb_init_db(struct confdb_ctx *cdb)
ret = confdb_add_param(cdb, false, "config/services", "description", val);
if (ret != EOK) goto done;
-#if 0 /* Not yet implemented */
/* PAM */
-#endif /* PAM */
+ /* set the sssd_pam description */
+ val[0] = "PAM Responder Configuration";
+ ret = confdb_add_param(cdb, false, "config/services/pam", "description", val);
+ if (ret != EOK) goto done;
+
+ /* Set the sssd_pam command path */
+ val[0] = talloc_asprintf(tmp_ctx, "%s/sssd_pam", SSSD_LIBEXEC_PATH);
+ CONFDB_ZERO_CHECK_OR_JUMP(val[0], ret, ENOMEM, done);
+ ret = confdb_add_param(cdb, false, "config/services/pam", "command", val);
+ if (ret != EOK) goto done;
+
+ /* Set the sssd_pam socket path */
+ val[0] = talloc_asprintf(tmp_ctx, "%s/pam", PIPE_PATH);
+ CONFDB_ZERO_CHECK_OR_JUMP(val[0], ret, ENOMEM, done);
+ ret = confdb_add_param(cdb, false, "config/services/pam", "unixSocket", val);
+ if (ret != EOK) goto done;
+
+ /* Add PAM to the list of active services */
+ val[0] = "pam";
+ ret = confdb_add_param(cdb, false, "config/services", "activeServices", val);
+ if (ret != EOK) goto done;
/* NSS */
/* set the sssd_nss description */
@@ -521,11 +540,13 @@ static int confdb_init_db(struct confdb_ctx *cdb)
/* Set the sssd_nss command path */
val[0] = talloc_asprintf(tmp_ctx, "%s/sssd_nss", SSSD_LIBEXEC_PATH);
+ CONFDB_ZERO_CHECK_OR_JUMP(val[0], ret, ENOMEM, done);
ret = confdb_add_param(cdb, false, "config/services/nss", "command", val);
if (ret != EOK) goto done;
/* Set the sssd_nss socket path */
val[0] = talloc_asprintf(tmp_ctx, "%s/sssd_nss", PIPE_PATH);
+ CONFDB_ZERO_CHECK_OR_JUMP(val[0], ret, ENOMEM, done);
ret = confdb_add_param(cdb, false, "config/services/nss", "unixSocket", val);
if (ret != EOK) goto done;
@@ -542,6 +563,7 @@ static int confdb_init_db(struct confdb_ctx *cdb)
/* Set the sssd_dp command path */
val[0] = talloc_asprintf(tmp_ctx, "%s/sssd_dp", SSSD_LIBEXEC_PATH);
+ CONFDB_ZERO_CHECK_OR_JUMP(val[0], ret, ENOMEM, done);
ret = confdb_add_param(cdb, false, "config/services/dp", "command", val);
if (ret != EOK) goto done;
@@ -554,16 +576,17 @@ static int confdb_init_db(struct confdb_ctx *cdb)
#ifdef HAVE_INFOPIPE
/* Set the sssd_info description */
val[0] = "InfoPipe Configuration";
- ret = confdb_add_param(cdb, false, "config/services/infp", "description", val);
+ ret = confdb_add_param(cdb, false, "config/services/info", "description", val);
if (ret != EOK) goto done;
/* Set the sssd_info command path */
val[0] = talloc_asprintf(tmp_ctx, "%s/sssd_info", SSSD_LIBEXEC_PATH);
- ret = confdb_add_param(cdb, false, "config/services/infp", "command", val);
+ CONFDB_ZERO_CHECK_OR_JUMP(val[0], ret, ENOMEM, done);
+ ret = confdb_add_param(cdb, false, "config/services/info", "command", val);
if (ret != EOK) goto done;
/* Add the InfoPipe to the list of active services */
- val[0] = "infp";
+ val[0] = "info";
ret = confdb_add_param(cdb, false, "config/services", "activeServices", val);
if (ret != EOK) goto done;
#endif
@@ -577,6 +600,7 @@ static int confdb_init_db(struct confdb_ctx *cdb)
/* Set the sssd_info command path */
val[0] = talloc_asprintf(tmp_ctx, "%s/sssd_pk", SSSD_LIBEXEC_PATH);
+ CONFDB_ZERO_CHECK_OR_JUMP(val[0], ret, ENOMEM, done);
ret = confdb_add_param(cdb, false, "config/services/spk", "command", val);
if (ret != EOK) goto done;
@@ -596,6 +620,11 @@ static int confdb_init_db(struct confdb_ctx *cdb)
ret = confdb_add_param(cdb, false, "config/domains/LOCAL", "description", val);
if (ret != EOK) goto done;
+ /* Set enumeration of LOCAL domain to 1 */
+ val[0] = "1";
+ ret = confdb_add_param(cdb, false, "config/domains/LOCAL", "enumerate", val);
+ if (ret != EOK) goto done;
+
done:
talloc_free(tmp_ctx);
return ret;
@@ -709,7 +738,7 @@ int confdb_get_domains(struct confdb_ctx *cdb,
domain->enumerate = ldb_msg_find_attr_as_int(res->msgs[i],
"enumerate", 0);
if (domain->enumerate == 0) {
- DEBUG(0, ("No enumeration for [%s]!\n", domain->name));
+ DEBUG(1, ("No enumeration for [%s]!\n", domain->name));
}
/* Determine if this is a legacy domain */
diff --git a/server/examples/config.ldif b/server/examples/config.ldif
index 1d419d91..b848e431 100644
--- a/server/examples/config.ldif
+++ b/server/examples/config.ldif
@@ -37,7 +37,7 @@ description: PAM Responder Configuration
unixSocket: /var/lib/sss/pipes/pam
dn: cn=info,cn=services,cn=config
-cn: infp
+cn: info
description: InfoPipe Configuration
command: ./sbin/sssd_info