From: Martin J. <mar...@gm...> - 2011-12-12 17:55:26
|
From: Klaus 'mrmoku' Kurzmann <mo...@mn...> * there as still issues in runtime without PAM, but at least it builds now without PAM support and it's good start Signed-off-by: Martin Jansa <Mar...@gm...> --- PROTO/elsa/configure.ac | 2 +- PROTO/elsa/src/daemon/Makefile.am | 6 ++++-- PROTO/elsa/src/daemon/elsa.c | 8 ++++++++ PROTO/elsa/src/daemon/elsa.h | 2 ++ PROTO/elsa/src/daemon/elsa_session.c | 11 +++++++++-- 5 files changed, 24 insertions(+), 5 deletions(-) diff --git a/PROTO/elsa/configure.ac b/PROTO/elsa/configure.ac index ac85872..82d0a3f 100644 --- a/PROTO/elsa/configure.ac +++ b/PROTO/elsa/configure.ac @@ -123,7 +123,6 @@ if test "x${enable_pam}" = "xyes" ; then fi - ### Checks for header files # Pam @@ -133,6 +132,7 @@ if test "x${have_pam}" = "xyes" ; then [have_pam="no"]) fi +AM_CONDITIONAL(HAVE_PAM, [test "x${have_pam}" = "xyes"]) ### Checks for types diff --git a/PROTO/elsa/src/daemon/Makefile.am b/PROTO/elsa/src/daemon/Makefile.am index cf1cd72..7919d90 100644 --- a/PROTO/elsa/src/daemon/Makefile.am +++ b/PROTO/elsa/src/daemon/Makefile.am @@ -29,8 +29,6 @@ elsa_session.h \ elsa_session.c \ elsa_xserver.h \ elsa_xserver.c \ -elsa_pam.h \ -elsa_pam.c \ ../event/elsa_event.c \ ../event/elsa_event.h \ elsa_server.h \ @@ -42,6 +40,10 @@ elsa_action.c \ elsa.h \ elsa.c +if HAVE_PAM +elsa_SOURCES += elsa_pam.h elsa_pam.c +endif + elsa_LDFLAGS = elsa_LDADD = @ELSA_LIBS@ -lpam -lrt diff --git a/PROTO/elsa/src/daemon/elsa.c b/PROTO/elsa/src/daemon/elsa.c index 8bc243f..23f971d 100644 --- a/PROTO/elsa/src/daemon/elsa.c +++ b/PROTO/elsa/src/daemon/elsa.c @@ -278,7 +278,9 @@ main (int argc, char ** argv) } elsa_user = getenv("ELSA_USER"); +#ifdef HAVE_PAM elsa_pam_init(PACKAGE, dname, elsa_user); +#endif if (elsa_user) { char *quit; @@ -295,7 +297,9 @@ main (int argc, char ** argv) exit(0); } sleep(3); +#ifdef HAVE_PAM elsa_pam_init(PACKAGE, dname, NULL); +#endif } else fprintf(stderr, "\n"); @@ -322,7 +326,9 @@ main (int argc, char ** argv) xcb_connection_t *disp = NULL; disp = xcb_connect(dname, NULL); ecore_main_loop_begin(); +#ifdef HAVE_PAM elsa_pam_item_set(ELSA_PAM_ITEM_USER, elsa_config->userlogin); +#endif elsa_session_login(elsa_config->command.session_login, EINA_FALSE); sleep(30); xcb_disconnect(disp); @@ -347,8 +353,10 @@ main (int argc, char ** argv) } elsa_xserver_shutdown(); fprintf(stderr, PACKAGE": xserver shutdown\n"); +#ifdef HAVE_PAM elsa_pam_shutdown(); fprintf(stderr, PACKAGE": pam shutdown\n"); +#endif ecore_shutdown(); elsa_config_shutdown(); fprintf(stderr, PACKAGE": config shutdown\n"); diff --git a/PROTO/elsa/src/daemon/elsa.h b/PROTO/elsa/src/daemon/elsa.h index 87d9f49..46f2584 100644 --- a/PROTO/elsa/src/daemon/elsa.h +++ b/PROTO/elsa/src/daemon/elsa.h @@ -13,7 +13,9 @@ #include <Ecore_File.h> #include "elsa_session.h" +#ifdef HAVE_PAM #include "elsa_pam.h" +#endif #include "elsa_config.h" #include "elsa_xserver.h" #include "elsa_server.h" diff --git a/PROTO/elsa/src/daemon/elsa_session.c b/PROTO/elsa/src/daemon/elsa_session.c index 3af2335..d869391 100644 --- a/PROTO/elsa/src/daemon/elsa_session.c +++ b/PROTO/elsa/src/daemon/elsa_session.c @@ -91,7 +91,6 @@ _elsa_session_userid_set(struct passwd *pwd) static Eina_Bool _elsa_session_begin(struct passwd *pwd, const char *cookie) { - char *term; fprintf(stderr, PACKAGE": Session Init\n"); if (pwd->pw_shell[0] == '\0') { @@ -99,7 +98,8 @@ _elsa_session_begin(struct passwd *pwd, const char *cookie) strcpy(pwd->pw_shell, getusershell()); endusershell(); } - term = getenv("TERM"); +#ifdef HAVE_PAM + char *term = getenv("TERM"); if (term) elsa_pam_env_set("TERM", term); elsa_pam_env_set("HOME", pwd->pw_dir); elsa_pam_env_set("SHELL", pwd->pw_shell); @@ -109,6 +109,7 @@ _elsa_session_begin(struct passwd *pwd, const char *cookie) elsa_pam_env_set("DISPLAY", ":0.0"); elsa_pam_env_set("MAIL", ""); elsa_pam_env_set("XAUTHORITY", cookie); +#endif return EINA_TRUE; } @@ -164,9 +165,11 @@ elsa_session_end(const char *user) "%s %s ", elsa_config->command.session_stop, user); if (-1 == system(buf)) fprintf(stderr, PACKAGE": Error on session stop command %s", buf); +#ifdef HAVE_PAM elsa_pam_close_session(); elsa_pam_end(); elsa_pam_shutdown(); +#endif } void @@ -234,8 +237,12 @@ elsa_session_shutdown() Eina_Bool elsa_session_authenticate(const char *login, const char *passwd) { +#ifdef HAVE_PAM return (!elsa_pam_auth_set(login, passwd) && !elsa_pam_authenticate()); +#else + return (EINA_TRUE); +#endif } Eina_Bool -- 1.7.8 |
From: Carsten H. (T. R. <ra...@ra...> - 2011-12-13 07:43:41
|
On Mon, 12 Dec 2011 18:55:09 +0100 Martin Jansa <mar...@gm...> said: in svn - thaks... (th else still doesn't pas make distcheck even) :) > From: Klaus 'mrmoku' Kurzmann <mo...@mn...> > > * there as still issues in runtime without PAM, but at least it builds > now without PAM support and it's good start > > Signed-off-by: Martin Jansa <Mar...@gm...> > --- > PROTO/elsa/configure.ac | 2 +- > PROTO/elsa/src/daemon/Makefile.am | 6 ++++-- > PROTO/elsa/src/daemon/elsa.c | 8 ++++++++ > PROTO/elsa/src/daemon/elsa.h | 2 ++ > PROTO/elsa/src/daemon/elsa_session.c | 11 +++++++++-- > 5 files changed, 24 insertions(+), 5 deletions(-) > > diff --git a/PROTO/elsa/configure.ac b/PROTO/elsa/configure.ac > index ac85872..82d0a3f 100644 > --- a/PROTO/elsa/configure.ac > +++ b/PROTO/elsa/configure.ac > @@ -123,7 +123,6 @@ if test "x${enable_pam}" = "xyes" ; then > fi > > > - > ### Checks for header files > > # Pam > @@ -133,6 +132,7 @@ if test "x${have_pam}" = "xyes" ; then > [have_pam="no"]) > fi > > +AM_CONDITIONAL(HAVE_PAM, [test "x${have_pam}" = "xyes"]) > > ### Checks for types > > diff --git a/PROTO/elsa/src/daemon/Makefile.am > b/PROTO/elsa/src/daemon/Makefile.am index cf1cd72..7919d90 100644 > --- a/PROTO/elsa/src/daemon/Makefile.am > +++ b/PROTO/elsa/src/daemon/Makefile.am > @@ -29,8 +29,6 @@ elsa_session.h \ > elsa_session.c \ > elsa_xserver.h \ > elsa_xserver.c \ > -elsa_pam.h \ > -elsa_pam.c \ > ../event/elsa_event.c \ > ../event/elsa_event.h \ > elsa_server.h \ > @@ -42,6 +40,10 @@ elsa_action.c \ > elsa.h \ > elsa.c > > +if HAVE_PAM > +elsa_SOURCES += elsa_pam.h elsa_pam.c > +endif > + > elsa_LDFLAGS = > elsa_LDADD = @ELSA_LIBS@ -lpam -lrt > > diff --git a/PROTO/elsa/src/daemon/elsa.c b/PROTO/elsa/src/daemon/elsa.c > index 8bc243f..23f971d 100644 > --- a/PROTO/elsa/src/daemon/elsa.c > +++ b/PROTO/elsa/src/daemon/elsa.c > @@ -278,7 +278,9 @@ main (int argc, char ** argv) > } > > elsa_user = getenv("ELSA_USER"); > +#ifdef HAVE_PAM > elsa_pam_init(PACKAGE, dname, elsa_user); > +#endif > if (elsa_user) > { > char *quit; > @@ -295,7 +297,9 @@ main (int argc, char ** argv) > exit(0); > } > sleep(3); > +#ifdef HAVE_PAM > elsa_pam_init(PACKAGE, dname, NULL); > +#endif > } > else > fprintf(stderr, "\n"); > @@ -322,7 +326,9 @@ main (int argc, char ** argv) > xcb_connection_t *disp = NULL; > disp = xcb_connect(dname, NULL); > ecore_main_loop_begin(); > +#ifdef HAVE_PAM > elsa_pam_item_set(ELSA_PAM_ITEM_USER, elsa_config->userlogin); > +#endif > elsa_session_login(elsa_config->command.session_login, EINA_FALSE); > sleep(30); > xcb_disconnect(disp); > @@ -347,8 +353,10 @@ main (int argc, char ** argv) > } > elsa_xserver_shutdown(); > fprintf(stderr, PACKAGE": xserver shutdown\n"); > +#ifdef HAVE_PAM > elsa_pam_shutdown(); > fprintf(stderr, PACKAGE": pam shutdown\n"); > +#endif > ecore_shutdown(); > elsa_config_shutdown(); > fprintf(stderr, PACKAGE": config shutdown\n"); > diff --git a/PROTO/elsa/src/daemon/elsa.h b/PROTO/elsa/src/daemon/elsa.h > index 87d9f49..46f2584 100644 > --- a/PROTO/elsa/src/daemon/elsa.h > +++ b/PROTO/elsa/src/daemon/elsa.h > @@ -13,7 +13,9 @@ > #include <Ecore_File.h> > > #include "elsa_session.h" > +#ifdef HAVE_PAM > #include "elsa_pam.h" > +#endif > #include "elsa_config.h" > #include "elsa_xserver.h" > #include "elsa_server.h" > diff --git a/PROTO/elsa/src/daemon/elsa_session.c > b/PROTO/elsa/src/daemon/elsa_session.c index 3af2335..d869391 100644 > --- a/PROTO/elsa/src/daemon/elsa_session.c > +++ b/PROTO/elsa/src/daemon/elsa_session.c > @@ -91,7 +91,6 @@ _elsa_session_userid_set(struct passwd *pwd) > static Eina_Bool > _elsa_session_begin(struct passwd *pwd, const char *cookie) > { > - char *term; > fprintf(stderr, PACKAGE": Session Init\n"); > if (pwd->pw_shell[0] == '\0') > { > @@ -99,7 +98,8 @@ _elsa_session_begin(struct passwd *pwd, const char *cookie) > strcpy(pwd->pw_shell, getusershell()); > endusershell(); > } > - term = getenv("TERM"); > +#ifdef HAVE_PAM > + char *term = getenv("TERM"); > if (term) elsa_pam_env_set("TERM", term); > elsa_pam_env_set("HOME", pwd->pw_dir); > elsa_pam_env_set("SHELL", pwd->pw_shell); > @@ -109,6 +109,7 @@ _elsa_session_begin(struct passwd *pwd, const char > *cookie) elsa_pam_env_set("DISPLAY", ":0.0"); > elsa_pam_env_set("MAIL", ""); > elsa_pam_env_set("XAUTHORITY", cookie); > +#endif > return EINA_TRUE; > } > > @@ -164,9 +165,11 @@ elsa_session_end(const char *user) > "%s %s ", elsa_config->command.session_stop, user); > if (-1 == system(buf)) > fprintf(stderr, PACKAGE": Error on session stop command %s", buf); > +#ifdef HAVE_PAM > elsa_pam_close_session(); > elsa_pam_end(); > elsa_pam_shutdown(); > +#endif > } > > void > @@ -234,8 +237,12 @@ elsa_session_shutdown() > Eina_Bool > elsa_session_authenticate(const char *login, const char *passwd) > { > +#ifdef HAVE_PAM > return (!elsa_pam_auth_set(login, passwd) > && !elsa_pam_authenticate()); > +#else > + return (EINA_TRUE); > +#endif > } > > Eina_Bool > -- > 1.7.8 > > > ------------------------------------------------------------------------------ > Learn Windows Azure Live! Tuesday, Dec 13, 2011 > Microsoft is holding a special Learn Windows Azure training event for > developers. It will provide a great way to learn Windows Azure and what it > provides. You can attend the event by watching it streamed LIVE online. > Learn more at http://p.sf.net/sfu/ms-windowsazure > _______________________________________________ > enlightenment-devel mailing list > enl...@li... > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) ra...@ra... |