ppp: add support for kernel mode pptp - add ppp-mod-pptp, based on patch by Daniel Golle <dgolle@allnet.de> - add netifd integration for pptp to ppp.sh
SVN-Revision: 32197
This commit is contained in:
parent
16a34b222a
commit
13b8a13d48
3 changed files with 3135 additions and 2 deletions
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (C) 2006-2011 OpenWrt.org
|
# Copyright (C) 2006-2012 OpenWrt.org
|
||||||
#
|
#
|
||||||
# This is free software, licensed under the GNU General Public License v2.
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
# See /LICENSE for more information.
|
# See /LICENSE for more information.
|
||||||
|
@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/kernel.mk
|
||||||
|
|
||||||
PKG_NAME:=ppp
|
PKG_NAME:=ppp
|
||||||
PKG_VERSION:=2.4.5
|
PKG_VERSION:=2.4.5
|
||||||
PKG_RELEASE:=5
|
PKG_RELEASE:=6
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=ftp://ftp.samba.org/pub/ppp/
|
PKG_SOURCE_URL:=ftp://ftp.samba.org/pub/ppp/
|
||||||
|
@ -105,6 +105,16 @@ define Package/ppp-mod-pppol2tp/description
|
||||||
This package contains a PPPoL2TP (PPP over L2TP) plugin for ppp.
|
This package contains a PPPoL2TP (PPP over L2TP) plugin for ppp.
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Package/ppp-mod-pptp
|
||||||
|
$(call Package/ppp/Default)
|
||||||
|
DEPENDS:=@(PACKAGE_ppp||PACKAGE_ppp-multilink) +kmod-pptp +kmod-mppe
|
||||||
|
TITLE:=PPtP plugin
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/ppp-mod-pptp/description
|
||||||
|
This package contains a PPtP plugin for ppp.
|
||||||
|
endef
|
||||||
|
|
||||||
define Package/chat
|
define Package/chat
|
||||||
$(call Package/ppp/Default)
|
$(call Package/ppp/Default)
|
||||||
DEPENDS:=@(PACKAGE_ppp||PACKAGE_ppp-multilink)
|
DEPENDS:=@(PACKAGE_ppp||PACKAGE_ppp-multilink)
|
||||||
|
@ -216,6 +226,14 @@ define Package/ppp-mod-pppol2tp/install
|
||||||
$(1)/usr/lib/pppd/$(PKG_VERSION)/
|
$(1)/usr/lib/pppd/$(PKG_VERSION)/
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Package/ppp-mod-pptp/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_VERSION)
|
||||||
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_VERSION)/pptp.so \
|
||||||
|
$(1)/usr/lib/pppd/$(PKG_VERSION)/
|
||||||
|
$(INSTALL_DIR) $(1)/etc/ppp
|
||||||
|
$(INSTALL_DATA) ./files/etc/ppp/options.pptp $(1)/etc/ppp/
|
||||||
|
endef
|
||||||
|
|
||||||
define Package/chat/install
|
define Package/chat/install
|
||||||
$(INSTALL_DIR) $(1)/usr/sbin
|
$(INSTALL_DIR) $(1)/usr/sbin
|
||||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/sbin/chat $(1)/usr/sbin/
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/sbin/chat $(1)/usr/sbin/
|
||||||
|
@ -237,6 +255,7 @@ $(eval $(call BuildPackage,ppp-mod-pppoa))
|
||||||
$(eval $(call BuildPackage,ppp-mod-pppoe))
|
$(eval $(call BuildPackage,ppp-mod-pppoe))
|
||||||
$(eval $(call BuildPackage,ppp-mod-radius))
|
$(eval $(call BuildPackage,ppp-mod-radius))
|
||||||
$(eval $(call BuildPackage,ppp-mod-pppol2tp))
|
$(eval $(call BuildPackage,ppp-mod-pppol2tp))
|
||||||
|
$(eval $(call BuildPackage,ppp-mod-pptp))
|
||||||
$(eval $(call BuildPackage,chat))
|
$(eval $(call BuildPackage,chat))
|
||||||
$(eval $(call BuildPackage,pppdump))
|
$(eval $(call BuildPackage,pppdump))
|
||||||
$(eval $(call BuildPackage,pppstats))
|
$(eval $(call BuildPackage,pppstats))
|
||||||
|
|
|
@ -166,9 +166,58 @@ proto_pppoa_teardown() {
|
||||||
ppp_generic_teardown "$@"
|
ppp_generic_teardown "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
proto_pptp_init_config() {
|
||||||
|
ppp_generic_init_config
|
||||||
|
proto_config_add_string "server"
|
||||||
|
proto_config_add_boolean "buffering"
|
||||||
|
available=1
|
||||||
|
no_device=1
|
||||||
|
}
|
||||||
|
|
||||||
|
proto_pptp_setup() {
|
||||||
|
local config="$1"
|
||||||
|
local iface="$2"
|
||||||
|
|
||||||
|
local ip serv_addr server
|
||||||
|
json_get_var server server && {
|
||||||
|
for ip in $(resolveip -t 5 "$server"); do
|
||||||
|
( proto_add_host_dependency "$config" "$ip" )
|
||||||
|
serv_addr=1
|
||||||
|
done
|
||||||
|
}
|
||||||
|
[ -n "$serv_addr" ] || {
|
||||||
|
echo "Could not resolve server address"
|
||||||
|
sleep 5
|
||||||
|
proto_setup_failed "$config"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
local buffering
|
||||||
|
json_get_var buffering buffering
|
||||||
|
[ "${buffering:-1}" == 0 ] && buffering="--nobuffer" || buffering=
|
||||||
|
|
||||||
|
local load
|
||||||
|
for module in slhc ppp_generic ppp_async ppp_mppe ip_gre gre pptp; do
|
||||||
|
grep -q "$module" /proc/modules && continue
|
||||||
|
/sbin/insmod $module 2>&- >&-
|
||||||
|
load=1
|
||||||
|
done
|
||||||
|
[ "$load" = "1" ] && sleep 1
|
||||||
|
|
||||||
|
ppp_generic_setup "$config" \
|
||||||
|
plugin pptp.so \
|
||||||
|
pptp_server $server \
|
||||||
|
file /etc/ppp/options.pptp
|
||||||
|
}
|
||||||
|
|
||||||
|
proto_pptp_teardown() {
|
||||||
|
ppp_generic_teardown "$@"
|
||||||
|
}
|
||||||
|
|
||||||
[ -n "$INCLUDE_ONLY" ] || {
|
[ -n "$INCLUDE_ONLY" ] || {
|
||||||
add_protocol ppp
|
add_protocol ppp
|
||||||
[ -f /usr/lib/pppd/*/rp-pppoe.so ] && add_protocol pppoe
|
[ -f /usr/lib/pppd/*/rp-pppoe.so ] && add_protocol pppoe
|
||||||
[ -f /usr/lib/pppd/*/pppoatm.so ] && add_protocol pppoa
|
[ -f /usr/lib/pppd/*/pppoatm.so ] && add_protocol pppoa
|
||||||
|
[ -f /usr/lib/pppd/*/pptp.so ] && add_protocol pptp
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
3065
package/ppp/patches/500-add-pptp-plugin.patch
Normal file
3065
package/ppp/patches/500-add-pptp-plugin.patch
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue