finally move buildroot-ng to trunk
[openwrt.git] / package / ppp / patches / 207-ppp_reconnect.patch
1 diff -urN -x'*.swp' ppp.old/pppd/auth.c ppp.dev/pppd/auth.c
2 --- ppp.old/pppd/auth.c 2004-11-12 11:30:51.000000000 +0100
3 +++ ppp.dev/pppd/auth.c 2005-07-13 14:54:23.000000000 +0200
4 @@ -532,6 +532,12 @@
5  link_required(unit)
6      int unit;
7  {
8 +}
9 +
10 +void
11 +start_link(unit)
12 +    int unit;
13 +{
14      new_phase(PHASE_SERIALCONN);
15  
16      devfd = the_channel->connect();
17 @@ -984,10 +990,12 @@
18      int unit, protocol, prot_flavor;
19  {
20      int bit;
21 +    const char *prot = "";
22  
23      switch (protocol) {
24      case PPP_CHAP:
25         bit = CHAP_WITHPEER;
26 +       prot = "CHAP";
27         switch (prot_flavor) {
28         case CHAP_MD5:
29             bit |= CHAP_MD5_WITHPEER;
30 @@ -1006,15 +1014,19 @@
31         if (passwd_from_file)
32             BZERO(passwd, MAXSECRETLEN);
33         bit = PAP_WITHPEER;
34 +       prot = "PAP";
35         break;
36      case PPP_EAP:
37         bit = EAP_WITHPEER;
38 +       prot = "EAP";
39         break;
40      default:
41         warn("auth_withpeer_success: unknown protocol %x", protocol);
42         bit = 0;
43      }
44  
45 +    notice("%s authentication succeeded", prot);
46 +
47      /* Save the authentication method for later. */
48      auth_done[unit] |= bit;
49  
50 @@ -1648,6 +1660,7 @@
51  static void
52  plogout()
53  {
54 +    char *tty;
55  #ifdef USE_PAM
56      int pam_error;
57  
58 @@ -1658,14 +1671,12 @@
59      }
60      /* Apparently the pam stuff does closelog(). */
61      reopen_log();
62 -#else /* ! USE_PAM */   
63 -    char *tty;
64 +#endif /* USE_PAM */
65  
66      tty = devnam;
67      if (strncmp(tty, "/dev/", 5) == 0)
68         tty += 5;
69      logwtmp(tty, "", "");              /* Wipe out utmp logout entry */
70 -#endif /* ! USE_PAM */
71      logged_in = 0;
72  }
73  
74 diff -urN -x'*.swp' ppp.old/pppd/main.c ppp.dev/pppd/main.c
75 --- ppp.old/pppd/main.c 2005-07-13 11:34:28.000000000 +0200
76 +++ ppp.dev/pppd/main.c 2005-07-13 14:49:06.000000000 +0200
77 @@ -537,6 +537,7 @@
78         script_unsetenv("BYTES_RCVD");
79  
80         lcp_open(0);            /* Start protocol */
81 +       start_link(0);
82         while (phase != PHASE_DEAD) {
83             handle_events();
84             get_input();
85 diff -urN -x'*.swp' ppp.old/pppd/pppd.h ppp.dev/pppd/pppd.h
86 --- ppp.old/pppd/pppd.h 2005-07-13 11:34:28.000000000 +0200
87 +++ ppp.dev/pppd/pppd.h 2005-07-13 14:48:56.000000000 +0200
88 @@ -526,6 +526,7 @@
89  
90  /* Procedures exported from auth.c */
91  void link_required __P((int));   /* we are starting to use the link */
92 +void start_link __P((int));      /* bring the link up now */
93  void link_terminated __P((int));  /* we are finished with the link */
94  void link_down __P((int));       /* the LCP layer has left the Opened state */
95  void upper_layers_down __P((int));/* take all NCPs down */
96 diff -urN -x'*.swp' ppp.old/pppd/tty.c ppp.dev/pppd/tty.c
97 --- ppp.old/pppd/tty.c  2004-11-13 13:07:29.000000000 +0100
98 +++ ppp.dev/pppd/tty.c  2005-07-13 14:46:57.000000000 +0200
99 @@ -755,14 +755,6 @@
100                 close(pty_master);
101                 pty_master = -1;
102         }
103 -       if (pty_slave >= 0) {
104 -               close(pty_slave);
105 -               pty_slave = -1;
106 -       }
107 -       if (real_ttyfd >= 0) {
108 -               close(real_ttyfd);
109 -               real_ttyfd = -1;
110 -       }
111         ttyfd = -1;
112         if (got_sigterm)
113                 asked_to_quit = 1;
114 @@ -781,6 +773,7 @@
115         } else {
116                 info("Serial link disconnected.");
117         }
118 +       stop_charshunt(NULL, 0);
119  }
120  
121  void tty_close_fds()
122 @@ -944,7 +937,6 @@
123         exit(0);
124      }
125      charshunt_pid = cpid;
126 -    add_notifier(&sigreceived, stop_charshunt, 0);
127      record_child(cpid, "pppd (charshunt)", charshunt_done, NULL);
128      return 1;
129  }