Changeset 21564


Ignore:
Timestamp:
2010-05-24T19:06:58+02:00 (7 years ago)
Author:
jow
Message:

[backfire] merge ppp, pppoe, pptp and 3g fixes
r21283, r21284, r21285, r21287, r21302, r21303, r21341,
r21361, r21379, r21383, r21386, r21387, r21388, r21389,
r21390, r21391, r21392, r21393, r21426, r21556, r21563

Location:
branches/backfire/package
Files:
1 deleted
12 edited
2 copied

Legend:

Unmodified
Added
Removed
  • branches/backfire/package/base-files/files/etc/init.d/network

    r20671 r21564  
    1616                /sbin/wifi detect > /etc/config/wireless 
    1717        } 
     18 
     19        scan_interfaces 
     20 
     21        local ifc 
     22        for ifc in $interfaces; do 
     23                local proto 
     24                config_get proto "$ifc" proto 
     25 
     26                type "coldplug_interface_$proto" >/dev/null && \ 
     27                        coldplug_interface_$proto "$ifc" 
     28        done 
    1829} 
    1930 
  • branches/backfire/package/base-files/files/lib/network/config.sh

    r20218 r21564  
    6565        } 
    6666        return 1 
     67} 
     68 
     69# add dns entries if they are not in resolv.conf yet 
     70add_dns() { 
     71        local cfg="$1"; shift 
     72 
     73        local dns 
     74        local add 
     75        for dns in "$@"; do 
     76                grep -qsF "nameserver $dns" /tmp/resolv.conf.auto || { 
     77                        add="${add:+$add }$dns" 
     78                        echo "nameserver $dns" >> /tmp/resolv.conf.auto 
     79                } 
     80        done 
     81 
     82        uci_set_state network "$cfg" dns "$add" 
     83} 
     84 
     85# remove dns entries of the given iface 
     86remove_dns() { 
     87        local cfg="$1" 
     88 
     89        local dns 
     90        config_get dns "$cfg" dns 
     91        for dns in $dns; do 
     92                sed -i -e "/^nameserver $dns$/d" /tmp/resolv.conf.auto 
     93        done 
     94 
     95        uci_revert_state network "$cfg" dns 
    6796} 
    6897 
     
    265294        set_interface_ifname "$config" "$iface_main" 
    266295 
    267         pidfile="/var/run/$iface_main.pid" 
    268296        [ -n "$proto" ] || config_get proto "$config" proto 
    269297        case "$proto" in 
     
    273301                ;; 
    274302                dhcp) 
     303                        local lockfile="/var/lock/dhcp-$iface_main" 
     304                        lock "$lockfile" 
     305 
    275306                        # prevent udhcpc from starting more than once 
    276                         lock "/var/lock/dhcp-$iface_main" 
     307                        local pidfile="/var/run/dhcp-${iface_main}.pid" 
    277308                        local pid="$(cat "$pidfile" 2>/dev/null)" 
    278                         if [ -d "/proc/$pid" ] && grep udhcpc "/proc/${pid}/cmdline" >/dev/null 2>/dev/null; then 
    279                                 lock -u "/var/lock/dhcp-$iface_main" 
     309                        if [ -d "/proc/$pid" ] && grep -qs udhcpc "/proc/${pid}/cmdline"; then 
     310                                lock -u "$lockfile" 
    280311                        else 
    281312                                local ipaddr netmask hostname proto1 clientid 
     
    293324                                [ ."$proto1" != ."$proto" ] && dhcpopts="-n -q" 
    294325                                $DEBUG eval udhcpc -t 0 -i "$iface_main" ${ipaddr:+-r $ipaddr} ${hostname:+-H $hostname} ${clientid:+-c $clientid} -b -p "$pidfile" ${dhcpopts:- -O rootpath -R &} 
    295                                 lock -u "/var/lock/dhcp-$iface_main" 
     326                                lock -u "$lockfile" 
    296327                        fi 
    297328                ;; 
     
    330361stop_interface_dhcp() { 
    331362        local config="$1" 
     363 
     364        local iface 
     365        config_get ifname "$config" ifname 
     366 
     367        local lock="/var/lock/dhcp-${ifname}" 
     368        [ -f "$lock" ] && lock -u "$lock" 
     369 
     370        local pidfile="/var/run/dhcp-${ifname}.pid" 
     371        local pid="$(cat "$pidfile" 2>/dev/null)" 
     372        [ -d "/proc/$pid" ] && { 
     373                grep -qs udhcpc "/proc/$pid/cmdline" && kill -TERM $pid && \ 
     374                        while grep -qs udhcpc "/proc/$pid/cmdline"; do sleep 1; done 
     375                rm -f "$pidfile" 
     376        } 
     377 
    332378        uci -P /var/state revert "network.$config" 
    333379} 
  • branches/backfire/package/base-files/files/sbin/ifdown

    r17582 r21564  
    3030( type "stop_interface_$proto" ) >/dev/null 2>/dev/null && eval "stop_interface_$proto '$cfg'" 
    3131 
    32 # make sure all locks are removed 
    33 for lock in "/var/lock/dhcp-$iface" "/var/lock/ppp-$iface"; do 
    34         [ -f "$lock" ] && { 
    35                 lock -u "$lock" 
    36                 sleep 1 
    37         } 
    38 done 
    39  
    40 # kill active ppp daemon and other processes 
    41 config_get ifname "$cfg" ifname 
    42 pids="$(head -n1 -q /var/run/${ifname}.pid /var/run/ppp-${cfg}.pid 2>/dev/null)" 
    43 for pid in $pids; do  
    44         [ -d "/proc/$pid" ] && { 
    45                 kill $pid 
    46                 [ -d "/proc/$pid" ] && { 
    47                         sleep 1 
    48                         kill -9 $pid 2>/dev/null >/dev/null 
    49                 } 
    50         } 
    51 done 
    52 rm -f /var/run/${ifname}.pid /var/run/ppp-${cfg}.pid 
    53  
    5432config_get ifname "$cfg" ifname 
    5533config_get device "$cfg" device 
  • branches/backfire/package/comgt/Makefile

    r15245 r21564  
    1010PKG_NAME:=comgt 
    1111PKG_VERSION:=0.32 
    12 PKG_RELEASE:=1 
     12PKG_RELEASE:=2 
    1313 
    1414PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).tgz 
  • branches/backfire/package/comgt/files/3g.sh

    r14044 r21564  
    1010scan_3g() { 
    1111        local device 
    12  
    13         scan_ppp "$@" 
    1412        config_get device "$1" device 
    1513 
     
    2523 
    2624        # enable 3G with the 3G button by default 
     25        local button 
    2726        config_get button "$1" button 
    2827        [ -z "$button" ] && { 
     
    3231 
    3332stop_interface_3g() { 
     33        stop_interface_ppp "$1" 
    3434        set_3g_led 0 0 0 
    3535        killall gcom >/dev/null 2>/dev/null 
     
    4040        local config="$2" 
    4141        local chat="/etc/chatscripts/3g.chat" 
    42          
     42 
     43        local device 
    4344        config_get device "$config" device 
     45 
     46        local maxwait 
    4447        config_get maxwait "$config" maxwait 
    4548        maxwait=${maxwait:-20} 
     
    5356        done 
    5457 
     58        local apn 
    5559        config_get apn "$config" apn 
     60 
     61        local service 
    5662        config_get service "$config" service 
     63 
     64        local pincode 
    5765        config_get pincode "$config" pincode 
     66 
     67        local mtu 
    5868        config_get mtu "$config" mtu 
    5969 
     
    8191                fi 
    8292                # Don't assume Option to be default as it breaks with Huawei Cards/Sticks 
    83                  
     93 
    8494                PINCODE="$pincode" gcom -d "$device" -s /etc/gcom/setpin.gcom || { 
    8595                        echo "$config(3g): Failed to set the PIN code." 
  • branches/backfire/package/ppp/Makefile

    r21479 r21564  
    1111PKG_NAME:=ppp 
    1212PKG_VERSION:=2.4.4 
    13 PKG_RELEASE:=6 
     13PKG_RELEASE:=7 
    1414 
    1515PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz 
     
    141141        $(INSTALL_BIN) ./files/etc/ppp/ipv6-down $(1)/etc/ppp/ 
    142142        $(INSTALL_DATA) ./files/etc/ppp/options $(1)/etc/ppp/ 
    143         ln -sf /tmp/resolv.conf.auto $(1)/etc/ppp/resolv.conf 
     143        ln -sf /tmp/resolv.conf.ppp $(1)/etc/ppp/resolv.conf 
    144144endef 
    145145         
     
    150150        $(INSTALL_DIR) $(1)/lib/network 
    151151        $(INSTALL_BIN) ./files/pppoa.sh $(1)/lib/network/ 
     152        $(INSTALL_DIR) $(1)/etc/hotplug.d/atm 
     153        $(INSTALL_DATA) ./files/etc/hotplug.d/atm/20-atm-modem $(1)/etc/hotplug.d/atm/ 
    152154endef 
    153155 
  • branches/backfire/package/ppp/files/etc/ppp/ip-up

    r19873 r21564  
    11#!/bin/sh 
     2 
    23. /etc/functions.sh 
     4. /lib/network/config.sh 
     5 
    36PPP_IFACE="$1" 
    47PPP_TTY="$2" 
     
    710PPP_REMOTE="$5" 
    811PPP_IPPARAM="$(echo $6 | sed 's/\./_/g')" 
    9 PPP_UNIT="${PPP_IFACE##ppp}" 
    1012 
    1113export PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM 
    1214[ -z "$PPP_IPPARAM" -o -z "$PPP_LOCAL" ] || { 
    13         uci_set_state network "$PPP_IPPARAM" unit "$PPP_UNIT" 
     15        uci_set_state network "$PPP_IPPARAM" ifname "$PPP_IFACE" 
    1416        uci_set_state network "$PPP_IPPARAM" ipaddr "$PPP_LOCAL" 
    1517        uci_set_state network "$PPP_IPPARAM" gateway "$PPP_REMOTE" 
    1618 
    1719        local dns="$DNS1${DNS2:+ $DNS2}" 
    18         [ -n "$dns" ] && uci_set_state network "$PPP_IPPARAM" dns "$dns" 
     20        [ -n "$dns" ] && add_dns "$PPP_IPPARAM" $dns 
    1921} 
     22 
    2023[ -z "$PPP_IPPARAM" ] || env -i ACTION="ifup" INTERFACE="$PPP_IPPARAM" DEVICE="$PPP_IFACE" PROTO=ppp /sbin/hotplug-call "iface" 
    2124 
  • branches/backfire/package/ppp/files/ppp.sh

    r21281 r21564  
    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 link="$proto-$cfg" 
     8        [ -f "/var/run/ppp-${link}.pid" ] && { 
     9                local pid="$(head -n1 /var/run/ppp-${link}.pid 2>/dev/null)" 
     10                local try=0 
     11                grep -qs pppd "/proc/$pid/cmdline" && kill -TERM $pid && \ 
     12                        while grep -qs pppd "/proc/$pid/cmdline" && [ $((try++)) -lt 5 ]; do sleep 1; done 
     13                grep -qs pppd "/proc/$pid/cmdline" && kill -KILL $pid && \ 
     14                        while grep -qs pppd "/proc/$pid/cmdline"; do sleep 1; done 
     15                rm -f "/var/run/ppp-${link}.pid" 
    4416        } 
     17 
     18        remove_dns "$cfg" 
     19 
     20        local lock="/var/lock/ppp-$link" 
     21        [ -f "$lock" ] && lock -u "$lock" 
    4522} 
    4623 
    4724start_pppd() { 
    4825        local cfg="$1"; shift 
    49         local ifname 
    5026 
    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" 
     27        local proto 
     28        config_get proto "$cfg" proto 
     29 
     30        # unique link identifier 
     31        local link="${proto:-ppp}-$cfg" 
    5532 
    5633        # 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)" 
     34        lock "/var/lock/ppp-${link}" 
     35        local pid="$(head -n1 /var/run/ppp-${link}.pid 2>/dev/null)" 
    5936        [ -d "/proc/$pid" ] && grep pppd "/proc/$pid/cmdline" 2>/dev/null >/dev/null && { 
    60                 lock -u "/var/lock/ppp-${cfg}" 
     37                lock -u "/var/lock/ppp-${link}" 
    6138                return 0 
    6239        } 
     
    6845        local device 
    6946        config_get device "$cfg" device 
    70  
    71         local unit 
    72         config_get unit "$cfg" unit 
    7347 
    7448        local username 
     
    9266        local defaultroute 
    9367        config_get_bool defaultroute "$cfg" defaultroute 1 
    94         [ "$defaultroute" -eq 1 ] && defaultroute="defaultroute replacedefaultroute" || defaultroute="" 
     68        [ "$defaultroute" -eq 1 ] && \ 
     69                defaultroute="defaultroute replacedefaultroute" || defaultroute="nodefaultroute" 
    9570 
    9671        local interval="${keepalive##*[, ]}" 
     
    11085        config_get_bool peerdns "$cfg" peerdns $peer_default 
    11186 
    112         echo -n "" > /tmp/resolv.conf.auto 
    113  
    11487        [ "$peerdns" -eq 1 ] && { 
    11588                peerdns="usepeerdns" 
    11689        } || { 
    11790                peerdns="" 
    118                 for dns in $dns; do 
    119                         echo "nameserver $dns" >> /tmp/resolv.conf.auto 
    120                 done 
     91                add_dns "$cfg" $dns 
    12192        } 
    12293 
     
    12798        [ "$demand" -eq 1 ] && { 
    12899                demandargs="precompiled-active-filter /etc/ppp/filter demand idle" 
    129                 [ "$has_dns" -eq 0 ] && \ 
    130                         echo "nameserver 1.1.1.1" > /tmp/resolv.conf.auto 
     100                [ "$has_dns" -eq 0 ] && add_dns "$cfg" 1.1.1.1 
    131101        } || { 
    132102                demandargs="persist" 
     
    137107        [ "$ipv6" -eq 1 ] && ipv6="+ipv6" || ipv6="" 
    138108 
    139         /usr/sbin/pppd "$@" \ 
     109        start-stop-daemon -S -b -x /usr/sbin/pppd -m -p /var/run/ppp-$link.pid -- "$@" \ 
    140110                ${keepalive:+lcp-echo-interval $interval lcp-echo-failure ${keepalive%%[, ]*}} \ 
    141111                $demandargs \ 
     
    143113                $defaultroute \ 
    144114                ${username:+user "$username" password "$password"} \ 
    145                 unit "$unit" \ 
    146                 linkname "$cfg" \ 
    147115                ipparam "$cfg" \ 
     116                ifname "$link" \ 
    148117                ${connect:+connect "$connect"} \ 
    149118                ${disconnect:+disconnect "$disconnect"} \ 
    150119                ${ipv6} \ 
    151                 ${pppd_options} 
     120                ${pppd_options} \ 
     121                nodetach 
    152122 
    153         lock -u "/var/lock/ppp-${cfg}" 
     123        lock -u "/var/lock/ppp-${link}" 
    154124} 
    155125 
  • branches/backfire/package/ppp/files/pppoa.sh

    r14882 r21564  
    1 scan_pppoa() { 
    2         scan_ppp "$@" 
     1stop_interface_pppoa() { 
     2        stop_interface_ppp "$1" 
    33} 
    44 
     
    66        local iface="$1" 
    77        local config="$2" 
    8          
     8 
     9        local device 
    910        config_get device "$config" device 
     11 
     12        local vpi 
    1013        config_get vpi "$config" vpi 
     14 
     15        local vci 
    1116        config_get vci "$config" vci 
    1217 
     
    1419                /sbin/insmod $module 2>&- >&- 
    1520        done 
    16          
     21 
     22        local encaps 
    1723        config_get encaps "$config" encaps 
     24 
    1825        case "$encaps" in 
    19                 1|vc) ENCAPS="vc-encaps" ;; 
    20                 *) ENCAPS="llc-encaps" ;; 
     26                1|vc) encaps="vc-encaps" ;; 
     27                *) encaps="llc-encaps" ;; 
    2128        esac 
    2229 
     30        local mtu 
    2331        config_get mtu "$config" mtu 
    2432        mtu=${mtu:-1500} 
     33 
    2534        start_pppd "$config" \ 
    26                 plugin pppoatm.so ${vpi:-8}.${vci:-35} ${ENCAPS} \ 
     35                plugin pppoatm.so ${vpi:-8}.${vci:-35} ${encaps} \ 
    2736                mtu $mtu mru $mtu 
    2837} 
  • branches/backfire/package/ppp/files/pppoe.sh

    r17529 r21564  
    1 scan_pppoe() { 
    2         scan_ppp "$@" 
     1stop_interface_pppoe() { 
     2        stop_interface_ppp "$1" 
    33} 
    44 
  • branches/backfire/package/pptp/Makefile

    r15245 r21564  
    99 
    1010PKG_NAME:=pptp 
    11 PKG_VERSION:=1.6.0 
    12 PKG_RELEASE:=6 
     11PKG_VERSION:=1.7.1 
     12PKG_RELEASE:=2 
    1313 
    1414PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz 
    1515PKG_SOURCE_URL:=@SF/pptpclient 
    16 PKG_MD5SUM:=9a706327fb9827541d7c86d48ceb9631 
     16PKG_MD5SUM:=b47735ba5d6d37dfdbccb85afc044ede 
    1717 
    1818include $(INCLUDE_DIR)/package.mk 
  • branches/backfire/package/pptp/files/pptp.sh

    r14887 r21564  
    1 scan_pptp() { 
    2         scan_ppp "$@" 
    3 } 
    4  
    51find_gw() { 
    62        route -n | awk '$1 == "0.0.0.0" { print $2; exit }' 
    73} 
    84 
     5stop_interface_pptp() { 
     6        stop_interface_ppp "$1" 
     7} 
     8 
     9coldplug_interface_pptp() { 
     10        setup_interface_pptp "pptp-$1" "$1" 
     11} 
    912 
    1013setup_interface_pptp() { 
    1114        local config="$2" 
    1215        local ifname 
    13          
     16 
     17        local device 
    1418        config_get device "$config" device 
     19 
     20        local ipproto 
    1521        config_get ipproto "$config" ipproto 
     22 
     23        local server 
    1624        config_get server "$config" server 
     25 
     26        local buffering 
     27        config_get_bool buffering "$config" buffering 1 
     28        [ "$buffering" == 0 ] && buffering="--nobuffer" || buffering= 
    1729 
    1830        for module in slhc ppp_generic ppp_async ip_gre; do 
     
    2436        local gw="$(find_gw)" 
    2537        [ -n "$gw" ] && { 
    26                 route delete "$server" 2>/dev/null >/dev/null 
     38                [ "$gw" != 0.0.0.0 ] && route delete "$server" 2>/dev/null >/dev/null 
    2739                route add "$server" gw "$gw" 
    2840        } 
     
    3244        [ -z "$netmask" -o -z "$device" ] || ifconfig $device netmask $netmask 
    3345 
    34         # make sure the network state references the correct ifname 
    35         scan_ppp "$config" 
    36         config_get ifname "$config" ifname 
    37         uci_set_state network "$config" ifname "$ifname" 
    38  
    3946        config_get mtu "$config" mtu 
    4047        mtu=${mtu:-1452} 
    4148        start_pppd "$config" \ 
    42                 pty "/usr/sbin/pptp $server --loglevel 0 --nolaunchpppd" \ 
     49                pty "/usr/sbin/pptp $server --loglevel 0 --nolaunchpppd $buffering" \ 
    4350                file /etc/ppp/options.pptp \ 
    4451                mtu $mtu mru $mtu 
Note: See TracChangeset for help on using the changeset viewer.