Changeset 21283


Ignore:
Timestamp:
2010-05-01T19:54:37+02:00 (8 years ago)
Author:
jow
Message:

[package] ppp:

  • patch pppd to support named interfaces (e.g. "pppoe-wan")
  • use named interfaces when bringing up 3g, pptp, ppp or pppoe connections
  • get rid of unit count logic
  • shutdown pppd when ifdown is invoked
  • bump package revision
Location:
trunk/package/ppp
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/ppp/Makefile

    r20558 r21283  
    1111PKG_NAME:=ppp 
    1212PKG_VERSION:=2.4.4 
    13 PKG_RELEASE:=5 
     13PKG_RELEASE:=6 
    1414 
    1515PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz 
  • trunk/package/ppp/files/etc/ppp/ip-up

    r19873 r21283  
    77PPP_REMOTE="$5" 
    88PPP_IPPARAM="$(echo $6 | sed 's/\./_/g')" 
    9 PPP_UNIT="${PPP_IFACE##ppp}" 
    109 
    1110export PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM 
    1211[ -z "$PPP_IPPARAM" -o -z "$PPP_LOCAL" ] || { 
    13         uci_set_state network "$PPP_IPPARAM" unit "$PPP_UNIT" 
     12        uci_set_state network "$PPP_IPPARAM" ifname "$PPP_IFACE" 
    1413        uci_set_state network "$PPP_IPPARAM" ipaddr "$PPP_LOCAL" 
    1514        uci_set_state network "$PPP_IPPARAM" gateway "$PPP_REMOTE" 
  • trunk/package/ppp/files/ppp.sh

    r21280 r21283  
    1 scan_ppp() { 
    2         config_get ifname "$1" ifname 
    3         pppdev="${pppdev:-0}" 
    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 
    42                 config_set "$1" ifname "ppp$unit" 
    43                 config_set "$1" unit "$unit" 
     1stop_interface_ppp() { 
     2        local cfg="$1" 
     3 
     4        local proto 
     5        config_get proto "$cfg" proto 
     6 
     7        local ifname 
     8        config_get ifname "$cfg" ifname 
     9 
     10        local link="${proto:-ppp}-$ifname" 
     11        [ -f "/var/run/ppp-${link}.pid" ] && { 
     12                local pid="$(head -n1 /var/run/ppp-${link}.pid 2>/dev/null)" 
     13                grep -qs pppd "/proc/$pid/cmdline" && kill -TERM $pid 
    4414        } 
    4515} 
     
    4717start_pppd() { 
    4818        local cfg="$1"; shift 
    49         local ifname 
    5019 
    51         # make sure the network state references the correct ifname 
    52         scan_ppp "$cfg" 
    53         config_get ifname "$cfg" ifname 
    54         set_interface_ifname "$cfg" "$ifname" 
     20        local proto 
     21        config_get proto "$cfg" proto 
     22 
     23        # unique link identifier 
     24        local link="${proto:-ppp}-$cfg" 
    5525 
    5626        # make sure only one pppd process is started 
    57         lock "/var/lock/ppp-${cfg}" 
    58         local pid="$(head -n1 /var/run/ppp-${cfg}.pid 2>/dev/null)" 
     27        lock "/var/lock/ppp-${link}" 
     28        local pid="$(head -n1 /var/run/ppp-${link}.pid 2>/dev/null)" 
    5929        [ -d "/proc/$pid" ] && grep pppd "/proc/$pid/cmdline" 2>/dev/null >/dev/null && { 
    60                 lock -u "/var/lock/ppp-${cfg}" 
     30                lock -u "/var/lock/ppp-${link}" 
    6131                return 0 
    6232        } 
     
    6838        local device 
    6939        config_get device "$cfg" device 
    70  
    71         local unit 
    72         config_get unit "$cfg" unit 
    7340 
    7441        local username 
     
    9259        local defaultroute 
    9360        config_get_bool defaultroute "$cfg" defaultroute 1 
    94         [ "$defaultroute" -eq 1 ] && defaultroute="defaultroute replacedefaultroute" || defaultroute="" 
     61        [ "$defaultroute" -eq 1 ] && \ 
     62                defaultroute="defaultroute replacedefaultroute" || defaultroute="" 
    9563 
    9664        local interval="${keepalive##*[, ]}" 
     
    143111                $defaultroute \ 
    144112                ${username:+user "$username" password "$password"} \ 
    145                 unit "$unit" \ 
    146                 linkname "$cfg" \ 
     113                linkname "$link" \ 
    147114                ipparam "$cfg" \ 
     115                ifname "$link" \ 
    148116                ${connect:+connect "$connect"} \ 
    149117                ${disconnect:+disconnect "$disconnect"} \ 
     
    151119                ${pppd_options} 
    152120 
    153         lock -u "/var/lock/ppp-${cfg}" 
     121        lock -u "/var/lock/ppp-${link}" 
    154122} 
    155123 
  • trunk/package/ppp/files/pppoe.sh

    r17529 r21283  
    1 scan_pppoe() { 
    2         scan_ppp "$@" 
     1stop_interface_pppoe() { 
     2        stop_interface_ppp "$1" 
    33} 
    44 
Note: See TracChangeset for help on using the changeset viewer.