From: Klaus 'mrmoku' Kurzmann <[email protected]>

* 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 <[email protected]>
---
 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to