summaryrefslogtreecommitdiffstats
path: root/source/passdb/pampass.c
diff options
context:
space:
mode:
authorJohn Terpstra <jht@samba.org>2001-04-11 00:14:57 +0000
committerJohn Terpstra <jht@samba.org>2001-04-11 00:14:57 +0000
commitec47ba5ca810cb493eabdcb229f308ecb2b9546f (patch)
tree3edd8f78c44961a3514acb6f1f0e7e57bd548481 /source/passdb/pampass.c
parent7d0d59439595478ee9216b6ab2e848f1cbd82782 (diff)
downloadsamba-ec47ba5ca810cb493eabdcb229f308ecb2b9546f.tar.gz
samba-ec47ba5ca810cb493eabdcb229f308ecb2b9546f.tar.xz
samba-ec47ba5ca810cb493eabdcb229f308ecb2b9546f.zip
Note: This is not working right now. It will be fixed soon ===> JHT
Diffstat (limited to 'source/passdb/pampass.c')
-rw-r--r--source/passdb/pampass.c64
1 files changed, 33 insertions, 31 deletions
diff --git a/source/passdb/pampass.c b/source/passdb/pampass.c
index 1cb7f42e6ab..b3108c2fb0c 100644
--- a/source/passdb/pampass.c
+++ b/source/passdb/pampass.c
@@ -278,10 +278,8 @@ static BOOL pam_account(pam_handle_t *pamh, char * user, char * password)
return (True);
}
-/*********************************************************************************/
-#if NOTBLOCKEDOUT
-static BOOL pam_session(pam_handle_t *pamh, char *user, char *tty, BOOL instance)
+static BOOL pam_session(pam_handle_t *pamh, char *user, char *tty, BOOL flag)
{
int pam_error;
@@ -289,7 +287,7 @@ static BOOL pam_session(pam_handle_t *pamh, char *user, char *tty, BOOL instance
PAM_username = user;
#ifdef PAM_TTY
- DEBUG(4,("PAM tty set to: %s\"\n", tty));
+ DEBUG(4,("PAM: tty set to: %s\n", tty));
pam_error = pam_set_item(pamh, PAM_TTY, tty);
if (!pam_error_handler(pamh, pam_error, "set tty failed", 0)) {
proc_pam_end(pamh);
@@ -297,7 +295,7 @@ static BOOL pam_session(pam_handle_t *pamh, char *user, char *tty, BOOL instance
}
#endif
- if (instance) {
+ if (flag) {
pam_error = pam_open_session(pamh, PAM_SILENT);
if (!pam_error_handler(pamh, pam_error, "session setup failed", 0)) {
proc_pam_end(pamh);
@@ -315,6 +313,36 @@ static BOOL pam_session(pam_handle_t *pamh, char *user, char *tty, BOOL instance
return (True);
}
+BOOL PAM_session(BOOL flag, const connection_struct *conn, char *tty)
+{
+ pam_handle_t *pamh = NULL;
+ char * user;
+
+ user = malloc(strlen(conn->user)+1);
+
+ /* This is freed by PAM */
+ strncpy(user, conn->user, strlen(conn->user)+1);
+
+ if (!proc_pam_start(&pamh, user))
+ {
+ proc_pam_end(pamh);
+ return False;
+ }
+
+ if (pam_session(pamh, user, tty, flag))
+ {
+ return proc_pam_end(pamh);
+ }
+ else
+ {
+ proc_pam_end(pamh);
+ return False;
+ }
+}
+
+/*********************************************************************************/
+#if NOTBLOCKEDOUT
+
static BOOL pam_account(pam_handle_t *pamh, char *user)
{
int pam_error;
@@ -372,32 +400,6 @@ static BOOL account_pam(char *user)
return False;
}
-BOOL PAM_session(BOOL instance, const connection_struct *conn, char *tty)
-{
- pam_handle_t *pamh=NULL;
- char * user;
-
- user = malloc(strlen(conn->user)+1);
-
- /* This is freed by PAM */
- strncpy(user, conn->user, strlen(conn->user)+1);
-
- if (!proc_pam_start(&pamh, user))
- {
- proc_pam_end(pamh);
- return False;
- }
-
- if (pam_session(pamh, user, tty, instance))
- {
- return proc_pam_end(pamh);
- }
- else
- {
- proc_pam_end(pamh);
- return False;
- }
-}
#endif /* NOTBLOCKEDOUT */
/************************************************************************************/