130 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			130 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
diff -urN -x'*.swp' ppp.old/pppd/auth.c ppp.dev/pppd/auth.c
 | 
						|
--- ppp.old/pppd/auth.c	2004-11-12 11:30:51.000000000 +0100
 | 
						|
+++ ppp.dev/pppd/auth.c	2005-07-13 14:54:23.000000000 +0200
 | 
						|
@@ -532,6 +532,12 @@
 | 
						|
 link_required(unit)
 | 
						|
     int unit;
 | 
						|
 {
 | 
						|
+}
 | 
						|
+
 | 
						|
+void
 | 
						|
+start_link(unit)
 | 
						|
+    int unit;
 | 
						|
+{
 | 
						|
     new_phase(PHASE_SERIALCONN);
 | 
						|
 
 | 
						|
     devfd = the_channel->connect();
 | 
						|
@@ -984,10 +990,12 @@
 | 
						|
     int unit, protocol, prot_flavor;
 | 
						|
 {
 | 
						|
     int bit;
 | 
						|
+    const char *prot = "";
 | 
						|
 
 | 
						|
     switch (protocol) {
 | 
						|
     case PPP_CHAP:
 | 
						|
 	bit = CHAP_WITHPEER;
 | 
						|
+	prot = "CHAP";
 | 
						|
 	switch (prot_flavor) {
 | 
						|
 	case CHAP_MD5:
 | 
						|
 	    bit |= CHAP_MD5_WITHPEER;
 | 
						|
@@ -1006,15 +1014,19 @@
 | 
						|
 	if (passwd_from_file)
 | 
						|
 	    BZERO(passwd, MAXSECRETLEN);
 | 
						|
 	bit = PAP_WITHPEER;
 | 
						|
+	prot = "PAP";
 | 
						|
 	break;
 | 
						|
     case PPP_EAP:
 | 
						|
 	bit = EAP_WITHPEER;
 | 
						|
+	prot = "EAP";
 | 
						|
 	break;
 | 
						|
     default:
 | 
						|
 	warn("auth_withpeer_success: unknown protocol %x", protocol);
 | 
						|
 	bit = 0;
 | 
						|
     }
 | 
						|
 
 | 
						|
+    notice("%s authentication succeeded", prot);
 | 
						|
+
 | 
						|
     /* Save the authentication method for later. */
 | 
						|
     auth_done[unit] |= bit;
 | 
						|
 
 | 
						|
@@ -1648,6 +1660,7 @@
 | 
						|
 static void
 | 
						|
 plogout()
 | 
						|
 {
 | 
						|
+    char *tty;
 | 
						|
 #ifdef USE_PAM
 | 
						|
     int pam_error;
 | 
						|
 
 | 
						|
@@ -1658,14 +1671,12 @@
 | 
						|
     }
 | 
						|
     /* Apparently the pam stuff does closelog(). */
 | 
						|
     reopen_log();
 | 
						|
-#else /* ! USE_PAM */   
 | 
						|
-    char *tty;
 | 
						|
+#endif /* USE_PAM */
 | 
						|
 
 | 
						|
     tty = devnam;
 | 
						|
     if (strncmp(tty, "/dev/", 5) == 0)
 | 
						|
 	tty += 5;
 | 
						|
     logwtmp(tty, "", "");		/* Wipe out utmp logout entry */
 | 
						|
-#endif /* ! USE_PAM */
 | 
						|
     logged_in = 0;
 | 
						|
 }
 | 
						|
 
 | 
						|
diff -urN -x'*.swp' ppp.old/pppd/main.c ppp.dev/pppd/main.c
 | 
						|
--- ppp.old/pppd/main.c	2005-07-13 11:34:28.000000000 +0200
 | 
						|
+++ ppp.dev/pppd/main.c	2005-07-13 14:49:06.000000000 +0200
 | 
						|
@@ -537,6 +537,7 @@
 | 
						|
 	script_unsetenv("BYTES_RCVD");
 | 
						|
 
 | 
						|
 	lcp_open(0);		/* Start protocol */
 | 
						|
+	start_link(0);
 | 
						|
 	while (phase != PHASE_DEAD) {
 | 
						|
 	    handle_events();
 | 
						|
 	    get_input();
 | 
						|
diff -urN -x'*.swp' ppp.old/pppd/pppd.h ppp.dev/pppd/pppd.h
 | 
						|
--- ppp.old/pppd/pppd.h	2005-07-13 11:34:28.000000000 +0200
 | 
						|
+++ ppp.dev/pppd/pppd.h	2005-07-13 14:48:56.000000000 +0200
 | 
						|
@@ -526,6 +526,7 @@
 | 
						|
 
 | 
						|
 /* Procedures exported from auth.c */
 | 
						|
 void link_required __P((int));	  /* we are starting to use the link */
 | 
						|
+void start_link __P((int));	  /* bring the link up now */
 | 
						|
 void link_terminated __P((int));  /* we are finished with the link */
 | 
						|
 void link_down __P((int));	  /* the LCP layer has left the Opened state */
 | 
						|
 void upper_layers_down __P((int));/* take all NCPs down */
 | 
						|
diff -urN -x'*.swp' ppp.old/pppd/tty.c ppp.dev/pppd/tty.c
 | 
						|
--- ppp.old/pppd/tty.c	2004-11-13 13:07:29.000000000 +0100
 | 
						|
+++ ppp.dev/pppd/tty.c	2005-07-13 14:46:57.000000000 +0200
 | 
						|
@@ -755,14 +755,6 @@
 | 
						|
 		close(pty_master);
 | 
						|
 		pty_master = -1;
 | 
						|
 	}
 | 
						|
-	if (pty_slave >= 0) {
 | 
						|
-		close(pty_slave);
 | 
						|
-		pty_slave = -1;
 | 
						|
-	}
 | 
						|
-	if (real_ttyfd >= 0) {
 | 
						|
-		close(real_ttyfd);
 | 
						|
-		real_ttyfd = -1;
 | 
						|
-	}
 | 
						|
 	ttyfd = -1;
 | 
						|
 	if (got_sigterm)
 | 
						|
 		asked_to_quit = 1;
 | 
						|
@@ -781,6 +773,7 @@
 | 
						|
 	} else {
 | 
						|
 		info("Serial link disconnected.");
 | 
						|
 	}
 | 
						|
+	stop_charshunt(NULL, 0);
 | 
						|
 }
 | 
						|
 
 | 
						|
 void tty_close_fds()
 | 
						|
@@ -944,7 +937,6 @@
 | 
						|
 	exit(0);
 | 
						|
     }
 | 
						|
     charshunt_pid = cpid;
 | 
						|
-    add_notifier(&sigreceived, stop_charshunt, 0);
 | 
						|
     record_child(cpid, "pppd (charshunt)", charshunt_done, NULL);
 | 
						|
     return 1;
 | 
						|
 }
 |