X-Git-Url: http://git.dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Fauth-pam.c;h=35b0a051350779ce119f57bcc53623a2b5dd820e;hb=142d5fc62cec0810847f2d19fe7ad228bed7cbf2;hp=38aa7cf5a6c33cf8ca37733647d978b325f8dfa4;hpb=3616b334bc6426e973e08b612a5e8fd30ad80a5f;p=doldaconnect.git diff --git a/daemon/auth-pam.c b/daemon/auth-pam.c index 38aa7cf..35b0a05 100644 --- a/daemon/auth-pam.c +++ b/daemon/auth-pam.c @@ -1,6 +1,6 @@ /* * Dolda Connect - Modular multiuser Direct Connect-style client - * Copyright (C) 2004 Fredrik Tolf (fredrik@dolda2000.com) + * Copyright (C) 2004 Fredrik Tolf * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -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 */