- (djm) Bug #423: reorder setting of PAM_TTY and calling of PAM session
   management (now done in do_setusercontext). Largely from
   michael_steffens AT hp.com
diff --git a/auth-pam.c b/auth-pam.c
index 3f3fbf2..bc378a3 100644
--- a/auth-pam.c
+++ b/auth-pam.c
@@ -31,7 +31,7 @@
 
 /* Based on $FreeBSD: src/crypto/openssh/auth2-pam-freebsd.c,v 1.11 2003/03/31 13:48:18 des Exp $ */
 #include "includes.h"
-RCSID("$Id: auth-pam.c,v 1.69 2003/09/02 13:12:06 djm Exp $");
+RCSID("$Id: auth-pam.c,v 1.70 2003/09/02 13:18:53 djm Exp $");
 
 #ifdef USE_PAM
 #include <security/pam_appl.h>
@@ -534,13 +534,23 @@
 }
 
 void
-do_pam_session(const char *user, const char *tty)
+do_pam_session(void)
 {
 	sshpam_err = pam_set_item(sshpam_handle, PAM_CONV, 
 	    (const void *)&null_conv);
 	if (sshpam_err != PAM_SUCCESS)
 		fatal("PAM: failed to set PAM_CONV: %s",
 		    pam_strerror(sshpam_handle, sshpam_err));
+	sshpam_err = pam_open_session(sshpam_handle, 0);
+	if (sshpam_err != PAM_SUCCESS)
+		fatal("PAM: pam_open_session(): %s",
+		    pam_strerror(sshpam_handle, sshpam_err));
+	sshpam_session_open = 1;
+}
+
+void
+do_pam_set_tty(const char *tty)
+{
 	if (tty != NULL) {
 		debug("PAM: setting PAM_TTY to \"%s\"", tty);
 		sshpam_err = pam_set_item(sshpam_handle, PAM_TTY, tty);
@@ -548,11 +558,6 @@
 			fatal("PAM: failed to set PAM_TTY: %s",
 			    pam_strerror(sshpam_handle, sshpam_err));
 	}
-	sshpam_err = pam_open_session(sshpam_handle, 0);
-	if (sshpam_err != PAM_SUCCESS)
-		fatal("PAM: pam_open_session(): %s",
-		    pam_strerror(sshpam_handle, sshpam_err));
-	sshpam_session_open = 1;
 }
 
 void