diff options
author | Sumit Bose <sbose@redhat.com> | 2009-02-27 20:32:31 +0100 |
---|---|---|
committer | Simo Sorce <ssorce@redhat.com> | 2009-03-02 09:02:22 -0500 |
commit | e65c65fc710fa030bfb8319efc43fcdc9ce5a26f (patch) | |
tree | 5e4a8f1e0e7e14ba0dcaa25023c851a7d5aa3cf5 /server/responder/pam/pamsrv_cmd.c | |
parent | a997dc37a7f69387195299caafc98afa80d74960 (diff) | |
download | sssd-e65c65fc710fa030bfb8319efc43fcdc9ce5a26f.tar.gz sssd-e65c65fc710fa030bfb8319efc43fcdc9ce5a26f.tar.bz2 sssd-e65c65fc710fa030bfb8319efc43fcdc9ce5a26f.zip |
first version of LOCAL pam backend
Diffstat (limited to 'server/responder/pam/pamsrv_cmd.c')
-rw-r--r-- | server/responder/pam/pamsrv_cmd.c | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/server/responder/pam/pamsrv_cmd.c b/server/responder/pam/pamsrv_cmd.c index 4fdded30..6c518695 100644 --- a/server/responder/pam/pamsrv_cmd.c +++ b/server/responder/pam/pamsrv_cmd.c @@ -2,6 +2,8 @@ #include <talloc.h> #include "util/util.h" +#include "confdb/confdb.h" +#include "responder/pam/pam_LOCAL_domain.h" #include "responder/common/responder_common.h" #include "responder/common/responder_cmd.h" #include "responder/common/responder_packet.h" @@ -125,9 +127,10 @@ static int pam_forwarder(struct cli_ctx *cctx, int pam_cmd) size_t blen; int ret; struct pam_data *pd; + char *default_domain; pd = talloc(cctx, struct pam_data); - if (pd == NULL) return ENOMEM; + if (pd == NULL) return ENOMEM; sss_packet_get_body(cctx->creq->in, &body, &blen); if (blen >= sizeof(uint32_t) && @@ -144,10 +147,26 @@ static int pam_forwarder(struct cli_ctx *cctx, int pam_cmd) return EINVAL; } + if (pd->domain == NULL) { + ret = confdb_get_string(cctx->nctx->cdb, cctx, "config/domains", + "defaultDomain", "LOCAL", &default_domain); + if (ret != EOK) { + DEBUG(1, ("Failed to call confdb.\n")); + talloc_free(pd); + return ret; + } + pd->domain = default_domain; + DEBUG(4, ("Using default domain [%s].\n", pd->domain)); + } + + if ( strncasecmp(pd->domain,"LOCAL",5) == 0 ) { + return LOCAL_schedule_request(cctx, pam_reply, pd); + }; + ret=pam_dp_send_req(cctx, pam_reply, PAM_DP_TIMEOUT, pd); DEBUG(4, ("pam_dp_send_req returned %d\n", ret)); - return ret; + return ret; } static int pam_cmd_authenticate(struct cli_ctx *cctx) { |