X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=pppd%2Fauth.c;h=fb719446f7489895f0b51081c99b99c8221fd210;hb=2b6310fd24dba8e0fca8999916a162f0a1842a84;hp=424b3e54c1709156ad0812a8540863b2ca7d50c0;hpb=8f09b151a39f156131f85b7d018443d81c7e6308;p=ppp.git diff --git a/pppd/auth.c b/pppd/auth.c index 424b3e5..fb71944 100644 --- a/pppd/auth.c +++ b/pppd/auth.c @@ -68,7 +68,7 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#define RCSID "$Id: auth.c,v 1.114 2008/06/15 06:53:06 paulus Exp $" +#define RCSID "$Id: auth.c,v 1.117 2008/07/01 12:27:56 paulus Exp $" #include #include @@ -190,6 +190,11 @@ int (*null_auth_hook) __P((struct wordlist **paddrs, int (*allowed_address_hook) __P((u_int32_t addr)) = NULL; +#ifdef HAVE_MULTILINK +/* Hook for plugin to hear when an interface joins a multilink bundle */ +void (*multilink_join_hook) __P((void)) = NULL; +#endif + /* A notifier for when the peer has authenticated itself, and we are proceeding to the network phase. */ struct notifier *auth_up_notifier = NULL; @@ -552,6 +557,7 @@ void start_link(unit) new_phase(PHASE_SERIALCONN); + hungup = 0; devfd = the_channel->connect(); msg = "Connect script failed"; if (devfd < 0) @@ -855,6 +861,8 @@ start_networks(unit) #ifdef HAVE_MULTILINK if (multilink) { if (mp_join_bundle()) { + if (multilink_join_hook) + (*multilink_join_hook)(); if (updetach && !nodetach) detach(); return; @@ -1133,7 +1141,6 @@ static void check_maxoctets(arg) void *arg; { - int diff; unsigned int used; update_link_stats(ifunit); @@ -1154,8 +1161,7 @@ check_maxoctets(arg) used = link_stats.bytes_in+link_stats.bytes_out; break; } - diff = maxoctets - used; - if(diff < 0) { + if (used > maxoctets) { notice("Traffic limit reached. Limit: %u Used: %u", maxoctets, used); status = EXIT_TRAFFIC_LIMIT; lcp_close(0, "Traffic limit");