Hi

This bug has been Reported in the Debian BTS as bug 538107

        http://bugs.debian.org/578070

If pppd is used with l2tpd (nodetach) in a multilink situation then this
feature of pppd causes problems

        MULTILINK
        If the first link terminates (for example, because of  a
        hangup or  a received  LCP  terminate-request)  the  bundle  is
        not destroyed unless there are no other links remaining in the
        bundle.  Rather than exiting, the first pppd keeps running
        after its link terminates, until all the links in the bundle
        have terminated.

pppd remains connected to l2tpd even though it is just acting as a
multilink master, causing l2tpd to believe that pppd is connected... i
have resolved the issue in my own system by instructing pppd to detach
from the terminal after it changes to PHASE_MASTER i have been using
this patch since 2009-02-19 in our production systems and havent had any
problems

The "if (!detached)" call is redundant since the detach function already
checks if the process is detached so can be optionally excluded

I have noticed other people complaining of similar issues when using
multilink/nodetach in other setups (eg pppoe) I believe that this patch
may also solve the problem for them, but i have not tested that setup

-----
diff --git a/pppd/auth.c b/pppd/auth.c
index fb71944..62648b8 100644
--- a/pppd/auth.c
+++ b/pppd/auth.c
@@ -669,8 +669,11 @@ link_terminated(unit)
        (*the_channel->cleanup)();

     if (doing_multilink && multilink_master) {
-       if (!bundle_terminating)
+       if (!bundle_terminating) {
            new_phase(PHASE_MASTER);
+           if (!detached)
+               detach();
+       }
        else
            mp_bundle_terminated();
     } else
-----

feedback is appreciated :)

Regards

Stephen




-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to