Ignore:
Timestamp:
2010-03-14T22:42:56+01:00 (7 years ago)
Author:
thepeople
Message:

/lib/network/ppp.sh fixes a problem with PPtP (and other PPP-based things) where PPtP + PPPoE will fail to work. This is because PPtP defaults to ppp0 and so does PPPoE, because /etc/init.d/ppp reinitializes the unit counter for each PPP-type connection (so you could have multiple PPtP over cable, for instance, but PPPoE + PPtP is a problem).

/etc/init.d/ppp automatically starts pptp session on boot., from #6720

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/ppp/files/ppp.sh

    r19093 r20221  
    22        config_get ifname "$1" ifname 
    33        pppdev="${pppdev:-0}" 
    4         config_get unit "$1" unit 
    5         [ -z "$unit" ] && { 
    6                 unit="$pppdev" 
    7                 if [ "${ifname%%[0-9]*}" = ppp ]; then 
    8                         unit="${ifname##ppp}" 
    9                         [ "$pppdev" -le "$unit" ] && pppdev="$(($unit + 1))" 
    10                 else 
    11                         pppdev="$(($pppdev + 1))" 
    12                 fi 
     4        config_get devunit "$1" unit 
     5        { 
     6                unit= 
     7                pppif= 
     8                if [ ! -d /tmp/.ppp-counter ]; then 
     9                     mkdir -p /tmp/.ppp-counter 
     10                fi 
     11                local maxunit 
     12                maxunit="$(cat /tmp/.ppp-counter/max-unit 2>/dev/null)"  
     13                if [ -z "$maxunit" ]; then 
     14                    maxunit=-1 
     15                fi 
     16                local i 
     17                i=0 
     18                while [ $i -le $maxunit ]; do 
     19                     local unitdev 
     20                     unitdev="$(cat /tmp/.ppp-counter/ppp${i} 2>/dev/null)" 
     21                     if [ "$unitdev" = "$1" ]; then 
     22                          unit="$i" 
     23                          pppif="ppp${i}" 
     24                          break 
     25                     fi 
     26                     i="$(($i + 1))" 
     27                done  
     28                if [ -z "$unit" ] || [ -z "$pppif" ]; then 
     29                    maxunit="$(($maxunit + 1))" 
     30                    if [ -n "$devunit" ]; then 
     31                        unit="$devunit" 
     32                    elif [ "${ifname%%[0-9]*}" = ppp ]; then 
     33                         unit="${ifname##ppp}" 
     34                    else 
     35                         unit="$maxunit" 
     36                    fi  
     37                    [ "$maxunit" -lt "$unit" ] && maxunit="$unit" 
     38                    pppif="ppp${unit}" 
     39                    echo "$1" >/tmp/.ppp-counter/$pppif 2>/dev/null 
     40                    echo "$maxunit" >/tmp/.ppp-counter/max-unit 2>/dev/null 
     41                fi 
    1342                config_set "$1" ifname "ppp$unit" 
    1443                config_set "$1" unit "$unit" 
Note: See TracChangeset for help on using the changeset viewer.