X-Git-Url: http://git.dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Fauth-pam.c;h=35b0a051350779ce119f57bcc53623a2b5dd820e;hb=4e564b59c7c565387c4907017dfacce2ef761f8a;hp=54b18c56f70131185b8b618fd179f3561f4aad0f;hpb=302a260054ea38d3cb97be6d1a3010082c09265d;p=doldaconnect.git diff --git a/daemon/auth-pam.c b/daemon/auth-pam.c index 54b18c5..35b0a05 100644 --- a/daemon/auth-pam.c +++ b/daemon/auth-pam.c @@ -34,8 +34,6 @@ #include #include #include -#include -#include #include #ifdef HAVE_CONFIG_H @@ -45,6 +43,11 @@ #include "utils.h" #include "conf.h" #include "log.h" +#include "module.h" + +#ifdef HAVE_PAM +#include +#include struct pamdata { @@ -168,9 +171,9 @@ static int inithandle(struct authhandle *auth, char *username) data = newpamdata(); conv.conv = (int (*)(int, const struct pam_message **, struct pam_response **, void *))pamconv; conv.appdata_ptr = auth; - if((buf = icwcstombs(confgetstr("auth", "pamserv"), NULL)) == NULL) + if((buf = icwcstombs(confgetstr("auth-pam", "pamserv"), NULL)) == NULL) { - flog(LOG_ERR, "could not initialize pam since auth.pamserv cannot be translated into the current locale: %s", strerror(errno)); + flog(LOG_ERR, "could not initialize pam since auth-pam.pamserv cannot be translated into the current locale: %s", strerror(errno)); releasepam(data); return(1); } @@ -321,7 +324,7 @@ static int closesess(struct authhandle *auth) return(rc); } -struct authmech authmech_pam = +static struct authmech authmech_pam = { .inithandle = inithandle, .release = release, @@ -332,3 +335,31 @@ struct authmech authmech_pam = .name = L"pam", .enabled = 1 }; + +static int init(int hup) +{ + if(!hup) + regmech(&authmech_pam); + return(0); +} + +static struct configvar myvars[] = +{ + /** The name of the PAM service file to use. */ + {CONF_VAR_STRING, "pamserv", {.str = L"doldacond"}}, + {CONF_VAR_END} +}; + +static struct module me = +{ + .conf = + { + .vars = myvars + }, + .init = init, + .name = "auth-pam" +}; + +MODULE(me); + +#endif /* HAVE_PAM */