Changeset 31605


Ignore:
Timestamp:
2012-05-05T18:56:28+02:00 (6 years ago)
Author:
nbd
Message:

pptp: add netifd support

Location:
trunk/package/pptp
Files:
1 added
2 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/package/pptp/Makefile

    r31600 r31605  
    3737MAKE_FLAGS += OPTIMIZE="$(TARGET_CFLAGS)" 
    3838 
    39 define Package/pptp/install 
     39ifneq ($(CONFIG_PACKAGE_netifd),) 
     40  define Package/pptp/install 
    4041        $(INSTALL_DIR) $(1)/usr/sbin 
    4142        $(INSTALL_BIN) $(PKG_BUILD_DIR)/pptp $(1)/usr/sbin/ 
     
    4445        $(INSTALL_DIR) $(1)/lib/network 
    4546        $(INSTALL_BIN) ./files/pptp.sh $(1)/lib/network/ 
    46 endef 
     47  endef 
     48else 
     49  define Package/pptp/install 
     50        $(INSTALL_DIR) $(1)/usr/sbin 
     51        $(INSTALL_BIN) $(PKG_BUILD_DIR)/pptp $(1)/usr/sbin/ 
     52        $(INSTALL_DIR) $(1)/etc/ppp 
     53        $(INSTALL_DATA) ./files/options.pptp $(1)/etc/ppp/ 
     54        $(INSTALL_DIR) $(1)/lib/network 
     55        $(INSTALL_DATA) ./files.old/pptp.sh $(1)/lib/network/ 
     56  endef 
     57endif 
    4758 
    4859$(eval $(call BuildPackage,pptp)) 
  • trunk/package/pptp/files/pptp.sh

    • Property svn:executable set to *
    r31568 r31605  
    1 find_route() { 
    2         ip route get $1 | sed -e 's/ /\n/g' | \ 
    3             sed -ne '1p;/via/{N;p};/dev/{N;p};/src/{N;p};/mtu/{N;p}' 
     1#!/bin/sh 
     2 
     3. /etc/functions.sh 
     4. ../netifd-proto.sh 
     5init_proto "$@" 
     6 
     7INCLUDE_ONLY=1 
     8. ./ppp.sh 
     9 
     10proto_pptp_init_config() { 
     11        ppp_generic_init_config 
     12        proto_config_add_string "server" 
     13        proto_config_add_boolean "buffering" 
     14        available=1 
     15        no_device=1 
    416} 
    517 
    6 scan_pptp() { 
    7         config_set "$1" device "pptp-$1" 
     18proto_pptp_setup() { 
     19        local config="$1" 
     20        local iface="$2" 
     21        local load 
     22 
     23        json_get_var server server 
     24        proto_add_host_dependency "$config" "$server" 
     25 
     26        json_get_var buffering buffering 
     27        [ "${buffering:-1}" == 0 ] && buffering="--nobuffer" || buffering= 
     28 
     29        for module in slhc ppp_generic ppp_async ip_gre; do 
     30                grep -q "$module" /proc/modules && continue 
     31                /sbin/insmod $module 2>&- >&- 
     32                load=1 
     33        done 
     34        [ "$load" = "1" ] && sleep 1 
     35 
     36        ppp_generic_setup "$config" \ 
     37                pty "/usr/sbin/pptp $server --loglevel 0 --nolaunchpppd $buffering" \ 
     38                file /etc/ppp/options.pptp 
    839} 
    940 
    10 stop_interface_pptp() { 
    11         stop_interface_ppp "$1" 
    12         for ip in $(uci_get_state network "$1" serv_addrs); do 
    13                 ip route del "$ip" 2>/dev/null 
    14         done 
     41proto_pptp_teardown() { 
     42        ppp_generic_teardown "$@" 
    1543} 
    1644 
    17 coldplug_interface_pptp() { 
    18         setup_interface_pptp "pptp-$1" "$1" 
    19 } 
    20  
    21 setup_interface_pptp() { 
    22         local config="$2" 
    23         local ifname 
    24  
    25         local device 
    26         config_get device "$config" device 
    27  
    28         local server 
    29         config_get server "$config" server 
    30  
    31         local buffering 
    32         config_get_bool buffering "$config" buffering 1 
    33         [ "$buffering" == 0 ] && buffering="--nobuffer" || buffering= 
    34  
    35         for module in slhc ppp_generic ppp_async ip_gre; do 
    36                 /sbin/insmod $module 2>&- >&- 
    37         done 
    38         sleep 1 
    39  
    40         local serv_addrs="" 
    41         for ip in $(resolveip -t 3 "${server}"); do 
    42                 append serv_addrs "$ip" 
    43                 ip route replace $(find_route $ip) 
    44         done 
    45         uci_toggle_state network "$config" serv_addrs "$serv_addrs" 
    46  
    47         # fix up the netmask 
    48         config_get netmask "$config" netmask 
    49         [ -z "$netmask" -o -z "$device" ] || ifconfig $device netmask $netmask 
    50  
    51         config_get mtu "$config" mtu 
    52         mtu=${mtu:-1452} 
    53         start_pppd "$config" \ 
    54                 pty "/usr/sbin/pptp $server --loglevel 0 --nolaunchpppd $buffering" \ 
    55                 file /etc/ppp/options.pptp \ 
    56                 mtu $mtu mru $mtu 
    57 } 
     45add_protocol pptp 
Note: See TracChangeset for help on using the changeset viewer.