diff options
Diffstat (limited to 'package/ppp')
37 files changed, 2359 insertions, 0 deletions
diff --git a/package/ppp/Config.in b/package/ppp/Config.in new file mode 100644 index 000000000..493c74e58 --- /dev/null +++ b/package/ppp/Config.in @@ -0,0 +1,52 @@ + +config ADK_PACKAGE_PPP + prompt "ppp............................... PPP (Point-to-Point Protocol) daemon" + tristate + default n + select ADK_KPACKAGE_KMOD_PPP + +#config ADK_PACKAGE_PPP_MOD_PPPOA +# prompt "ppp-mod-pppoa................... PPPoA (PPP over ATM) plugin" +# tristate +# default n +# select ADK_KPACKAGE_KMOD_PPPOATM +# depends ADK_PACKAGE_PPP + +config ADK_PACKAGE_PPP_MOD_PPPOE + prompt "ppp-mod-pppoe................... PPPoE (PPP over Ethernet) plugin" + tristate + default n + select ADK_KPACKAGE_KMOD_PPPOE + depends ADK_PACKAGE_PPP + +config ADK_PACKAGE_PPP_MOD_RADIUS + prompt "ppp-mod-radius.................. RADIUS (Remote Authentication Dial-In User Service) plugin" + tristate + default n + depends ADK_PACKAGE_PPP + +config ADK_PACKAGE_PPP_MOD_CHAT + prompt "chat............................ Utility to establish conversation with other PPP servers (via a modem)" + tristate + default n + depends ADK_PACKAGE_PPP + +config ADK_PACKAGE_PPP_MOD_PPPDUMP + prompt "pppdump......................... Utility to read PPP record file" + tristate + default n + depends ADK_PACKAGE_PPP + +config ADK_PACKAGE_PPP_MOD_PPPSTATS + prompt "pppstats........................ Utility to report PPP statistics" + tristate + default n + depends ADK_PACKAGE_PPP + +config ADK_PACKAGE_PPP_MOD_PPPUMTS + prompt "GPRS/UMTS support............... Package with scripts and dependencies to run UMTS/GRPS" + tristate + default n + select ADK_PACKAGE_COMGT + select ADK_KPACKAGE_KMOD_USB_SERIAL + depends ADK_PACKAGE_PPP diff --git a/package/ppp/Makefile b/package/ppp/Makefile new file mode 100644 index 000000000..44864dcd8 --- /dev/null +++ b/package/ppp/Makefile @@ -0,0 +1,106 @@ +# $Id$ +#- +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include ${TOPDIR}/rules.mk + +PKG_NAME:= ppp +PKG_VERSION:= 2.4.4 +PKG_RELEASE:= 16 +PKG_MD5SUM:= 183800762e266132218b204dfb428d29 +MASTER_SITES:= ftp://ftp.samba.org/pub/ppp/ + +include ${TOPDIR}/mk/package.mk + +$(eval $(call PKG_template,PPP,ppp,${PKG_VERSION}-${PKG_RELEASE},${ARCH})) +$(eval $(call PKG_template,PPP_MOD_PPPOA,ppp-mod-pppoa,${PKG_VERSION}-${PKG_RELEASE},${ARCH})) +$(eval $(call PKG_template,PPP_MOD_PPPOE,ppp-mod-pppoe,${PKG_VERSION}-${PKG_RELEASE},${ARCH})) +$(eval $(call PKG_template,PPP_MOD_RADIUS,ppp-mod-radius,${PKG_VERSION}-${PKG_RELEASE},${ARCH})) +$(eval $(call PKG_template,PPP_MOD_CHAT,ppp-mod-chat,${PKG_VERSION}-${PKG_RELEASE},${ARCH})) +$(eval $(call PKG_template,PPP_MOD_PPPDUMP,ppp-mod-pppdump,${PKG_VERSION}-${PKG_RELEASE},${ARCH})) +$(eval $(call PKG_template,PPP_MOD_PPPSTATS,ppp-mod-pppstats,${PKG_VERSION}-${PKG_RELEASE},${ARCH})) +$(eval $(call PKG_template,PPP_MOD_PPPUMTS,ppp-mod-pppumts,${PKG_VERSION}-${PKG_RELEASE},${ARCH})) + +ifeq ($(ADK_IPV6),y) +IPV6+=HAVE_INET6="1" +endif + +CONFIGURE_STYLE:= gnu +BUILD_STYLE:= auto +INSTALL_STYLE:= auto +XAKE_FLAGS+= CC="${TARGET_CC}" \ + COPTS="${TCFLAGS}" \ + ${IPV6} \ + STAGING_DIR=${STAGING_DIR} \ + DESTDIR="${WRKINST}/usr" \ + TARGET_AR='${TARGET_CROSS}ar' + +SUB_INSTALLS-y:= +SUB_INSTALLS-m:= +SUB_INSTALLS-${ADK_PACKAGE_PPP_MOD_PPPOE}+= mod-pppoe-install +SUB_INSTALLS-${ADK_PACKAGE_PPP_MOD_RADIUS}+= mod-radius-install +SUB_INSTALLS-${ADK_PACKAGE_PPP_MOD_CHAT}+= mod-chat-install +SUB_INSTALLS-${ADK_PACKAGE_PPP_MOD_PPPDUMP}+= mod-pppdump-install +SUB_INSTALLS-${ADK_PACKAGE_PPP_MOD_PPPSTATS}+= mod-pppstats-install +SUB_INSTALLS-${ADK_PACKAGE_PPP_MOD_PPPUMTS}+= mod-pppumts-install + +post-install: ${SUB_INSTALLS-m} ${SUB_INSTALLS-y} + echo ------------------------------- + echo ${SUB_INSTALLS-m} + echo ${SUB_INSTALLS-y} + ${INSTALL_DIR} ${IDIR_PPP}/etc/ppp + ln -sf /tmp/resolv.conf ${IDIR_PPP}/etc/ppp/resolv.conf + install -m0600 ./files/etc/ppp/chap-secrets ${IDIR_PPP}/etc/ppp/ + ${INSTALL_DATA} ./files/etc/ppp/options ${IDIR_PPP}/etc/ppp/ + ${INSTALL_FILTER} + ${INSTALL_BIN} ./files/etc/ppp/ip-up ${IDIR_PPP}/etc/ppp/ + ${INSTALL_DIR} ${IDIR_PPP}/etc/ppp/ip-up.d + ${INSTALL_BIN} ./files/etc/ppp/ip-up.d/if-rename ${IDIR_PPP}/etc/ppp/ip-up.d/ + ${INSTALL_BIN} ./files/etc/ppp/ip-down ${IDIR_PPP}/etc/ppp/ + ${INSTALL_DIR} ${IDIR_PPP}/etc/ppp/ip-down.d + ${INSTALL_DIR} ${IDIR_PPP}/usr/sbin + ${INSTALL_BIN} ${WRKINST}/usr/sbin/pppd ${IDIR_PPP}/usr/sbin/ + ${INSTALL_DIR} ${IDIR_PPP}/usr/lib/pppd + ${INSTALL_BIN} ./files/pon ${IDIR_PPP}/usr/sbin/ + ${INSTALL_BIN} ./files/poff ${IDIR_PPP}/usr/sbin/ + ${INSTALL_DIR} ${IDIR_PPP}/etc/ppp/peers + ${INSTALL_DIR} ${IDIR_PPP}/etc/ppp/templates + ${INSTALL_DATA} ./files/etc/ppp/templates/dsl ${IDIR_PPP}/etc/ppp/templates/ + +mod-radius-install: + ${INSTALL_DIR} ${IDIR_PPP_MOD_RADIUS}/etc/radiusclient + ${CP} ${WRKBUILD}/pppd/plugins/radius/etc/* ${IDIR_PPP_MOD_RADIUS}/etc/radiusclient + rm ${IDIR_PPP_MOD_RADIUS}/etc/radiusclient/radiusclient.conf.in + ${INSTALL_DIR} ${IDIR_PPP_MOD_RADIUS}/usr/lib/pppd/$(PKG_VERSION) + ${INSTALL_BIN} $(WRKINST)/usr/lib/pppd/$(PKG_VERSION)/radius.so \ + ${IDIR_PPP_MOD_RADIUS}/usr/lib/pppd/$(PKG_VERSION) + +mod-pppoe-install: + ${INSTALL_DIR} ${IDIR_PPP_MOD_PPPOE}/usr/lib/pppd/$(PKG_VERSION) + ${INSTALL_BIN} $(WRKINST)/usr/lib/pppd/$(PKG_VERSION)/rp-pppoe.so \ + ${IDIR_PPP_MOD_PPPOE}/usr/lib/pppd/$(PKG_VERSION) + +mod-chat-install: + ${INSTALL_DIR} ${IDIR_PPP_MOD_CHAT}/usr/sbin + ${CP} ${WRKINST}/usr/sbin/chat ${IDIR_PPP_MOD_CHAT}/usr/sbin/ + +mod-pppdump-install: + ${INSTALL_DIR} ${IDIR_PPP_MOD_PPPDUMP}/usr/sbin + ${CP} ${WRKINST}/usr/sbin/pppdump ${IDIR_PPP_MOD_PPPDUMP}/usr/sbin/ + +mod-pppstats-install: + ${INSTALL_DIR} ${IDIR_PPP_MOD_PPPSTATS}/usr/sbin + ${CP} ${WRKINST}/usr/sbin/pppstats ${IDIR_PPP_MOD_PPPSTATS}/usr/sbin/ + +mod-pppumts-install: + ${INSTALL_DIR} ${IDIR_PPP_MOD_PPPUMTS}/etc/ppp/templates + ${INSTALL_DIR} ${IDIR_PPP_MOD_PPPUMTS}/etc/ppp/ip-{down,up}.d + ${INSTALL_DATA} ./files/etc/ppp/templates/umts \ + ${IDIR_PPP_MOD_PPPUMTS}/etc/ppp/templates/ + ${INSTALL_BIN} ./files/etc/ppp/ip-up.d/umts \ + ${IDIR_PPP_MOD_PPPUMTS}/etc/ppp/ip-up.d/ + ${INSTALL_BIN} ./files/etc/ppp/ip-down.d/umts \ + ${IDIR_PPP_MOD_PPPUMTS}/etc/ppp/ip-down.d/ + +include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/ppp/files/etc/ppp/chap-secrets b/package/ppp/files/etc/ppp/chap-secrets new file mode 100644 index 000000000..6ab76e49e --- /dev/null +++ b/package/ppp/files/etc/ppp/chap-secrets @@ -0,0 +1 @@ +#USERNAME PROVIDER PASSWORD IPADDRESS diff --git a/package/ppp/files/etc/ppp/filter b/package/ppp/files/etc/ppp/filter new file mode 100644 index 000000000..ec72a81a0 --- /dev/null +++ b/package/ppp/files/etc/ppp/filter @@ -0,0 +1,23 @@ +# +# Expression: outbound and not icmp[0] != 8 and not tcp[13] & 4 != 0 +# +19 +48 0 0 0 +21 0 16 1 +40 0 0 2 +21 0 13 33 +48 0 0 13 +21 0 5 1 +40 0 0 10 +69 9 0 8191 +177 0 0 4 +80 0 0 4 +21 6 7 8 +21 0 5 6 +40 0 0 10 +69 3 0 8191 +177 0 0 4 +80 0 0 17 +69 1 0 4 +6 0 0 4 +6 0 0 0 diff --git a/package/ppp/files/etc/ppp/ip-down b/package/ppp/files/etc/ppp/ip-down new file mode 100755 index 000000000..334bcb885 --- /dev/null +++ b/package/ppp/files/etc/ppp/ip-down @@ -0,0 +1,9 @@ +#!/bin/sh +[ -z "$6" ] || env -i ACTION="ifdown" INTERFACE="$6" PROTO=ppp /sbin/hotplug "iface" + +[ -d /etc/ppp/ip-down.d ] && { + for SCRIPT in /etc/ppp/ip-down.d/* + do + [ -x "$SCRIPT" ] && "$SCRIPT" $@ + done +} diff --git a/package/ppp/files/etc/ppp/ip-down.d/umts b/package/ppp/files/etc/ppp/ip-down.d/umts new file mode 100755 index 000000000..6c812a782 --- /dev/null +++ b/package/ppp/files/etc/ppp/ip-down.d/umts @@ -0,0 +1,7 @@ +#!/bin/sh + +[ "$IF_USE_TEMPLATE" == "umts" ] || exit 0 + +# enable bit 3, disable bit 4 - i.e. UMTS-LED from blue to green +LED=$(cat /proc/sys/diag) +echo $(((LED | 16) ^ 16 | 8)) > /proc/sys/diag diff --git a/package/ppp/files/etc/ppp/ip-up b/package/ppp/files/etc/ppp/ip-up new file mode 100755 index 000000000..34b4b50e1 --- /dev/null +++ b/package/ppp/files/etc/ppp/ip-up @@ -0,0 +1,9 @@ +#!/bin/sh +[ -z "$6" ] || env -i ACTION="ifup" INTERFACE="$6" PROTO=ppp /sbin/hotplug "iface" + +[ -d /etc/ppp/ip-up.d ] && { + for SCRIPT in /etc/ppp/ip-up.d/* + do + [ -x "$SCRIPT" ] && "$SCRIPT" $@ + done +} diff --git a/package/ppp/files/etc/ppp/ip-up.d/if-rename b/package/ppp/files/etc/ppp/ip-up.d/if-rename new file mode 100755 index 000000000..061fd8861 --- /dev/null +++ b/package/ppp/files/etc/ppp/ip-up.d/if-rename @@ -0,0 +1,17 @@ +#!/bin/sh +exit 0 # This script breaks ppp accounting + +[ "$LINKNAME" ] || exit 0 + +PATH=/bin:/usr/sbin:$PATH +if ip link show dev $LINKNAME >/dev/null;then + logger "$0: interface '$LINKNAME' already exists, cannot rename '$IFNAME'." + exit 0 +fi + +if ip route | grep -qE "^default.*dev $IFNAME *$"; then DEFAULT_ROUTE=1; fi + +ip link set $IFNAME down +ip link set $IFNAME name $LINKNAME +ip link set $LINKNAME up +if [ -n "$DEFAULT_ROUTE" ]; then ip route add default via $IPREMOTE; fi diff --git a/package/ppp/files/etc/ppp/ip-up.d/umts b/package/ppp/files/etc/ppp/ip-up.d/umts new file mode 100755 index 000000000..0c18970e0 --- /dev/null +++ b/package/ppp/files/etc/ppp/ip-up.d/umts @@ -0,0 +1,7 @@ +#!/bin/sh + +[ "$IF_USE_TEMPLATE" == "umts" ] || exit 0 + +# enable bit 4 i.e. UMTS-LED blue +LED=$(cat /proc/sys/diag) +echo $((LED | 16)) > /proc/sys/diag diff --git a/package/ppp/files/etc/ppp/options b/package/ppp/files/etc/ppp/options new file mode 100644 index 000000000..4b67b6a0d --- /dev/null +++ b/package/ppp/files/etc/ppp/options @@ -0,0 +1 @@ +lock diff --git a/package/ppp/files/etc/ppp/peers/dsl b/package/ppp/files/etc/ppp/peers/dsl new file mode 100644 index 000000000..7ffc38082 --- /dev/null +++ b/package/ppp/files/etc/ppp/peers/dsl @@ -0,0 +1,12 @@ +plugin rp-pppoe.so +ipcp-accept-remote +ipcp-accept-local +usepeerdns +defaultroute +lcp-echo-interval 10 +lcp-echo-failure 3 +persist +maxfail 0 + +user "user@t-online.de" +password "secret" diff --git a/package/ppp/files/etc/ppp/templates/dsl b/package/ppp/files/etc/ppp/templates/dsl new file mode 100644 index 000000000..2ad285ede --- /dev/null +++ b/package/ppp/files/etc/ppp/templates/dsl @@ -0,0 +1,9 @@ +plugin rp-pppoe.so +defaultroute +usepeerdns +lcp-echo-interval 10 +lcp-echo-failure 3 +#IDLEOPTIONS# +user #USERNAME# +password #PASSWORD# +#DEVICE# diff --git a/package/ppp/files/etc/ppp/templates/umts b/package/ppp/files/etc/ppp/templates/umts new file mode 100644 index 000000000..e9c97bf06 --- /dev/null +++ b/package/ppp/files/etc/ppp/templates/umts @@ -0,0 +1,11 @@ +defaultroute +usepeerdns +lcp-echo-interval 10 +lcp-echo-failure 3 +crtscts +460800 +connect "NUMBER='*99***1#' /usr/bin/comgt -s /etc/comgt/dial.comgt -d #DEVICE#" +#IDLEOPTIONS# +user #USERNAME# +password #PASSWORD# +#DEVICE# diff --git a/package/ppp/files/poff b/package/ppp/files/poff new file mode 100755 index 000000000..955cebe8c --- /dev/null +++ b/package/ppp/files/poff @@ -0,0 +1,14 @@ +#!/bin/mksh +(busybox ps ww | grep "[ /]pppd call $1\( .*\)*\$") |& +found=0 +rv=0 +while read thepid rest; do + if ! kill $thepid; then + print -u2 "$0: kill $thepid failed" + rv=1 + fi + found=1 +done +[[ $found = 1 ]] && exit $rv +print -u2 "$0: I could not find a pppd process for provider '$1'." +exit 1 diff --git a/package/ppp/files/pon b/package/ppp/files/pon new file mode 100755 index 000000000..1c2e5c50c --- /dev/null +++ b/package/ppp/files/pon @@ -0,0 +1,8 @@ +#!/bin/sh +insmod slhc.o 2>/dev/null +insmod ppp_generic.o 2>/dev/null +insmod pppox.o 2>/dev/null +insmod pppoe.o 2>/dev/null +insmod ppp_async.o 2>/dev/null + +exec /usr/sbin/pppd call $@ >/dev/null 2>&1 diff --git a/package/ppp/files/ppp.pre-up b/package/ppp/files/ppp.pre-up new file mode 100755 index 000000000..e69de29bb --- /dev/null +++ b/package/ppp/files/ppp.pre-up diff --git a/package/ppp/ipkg/ppp-mod-chat.control b/package/ppp/ipkg/ppp-mod-chat.control new file mode 100644 index 000000000..43dbdb1e1 --- /dev/null +++ b/package/ppp/ipkg/ppp-mod-chat.control @@ -0,0 +1,5 @@ +Package: chat +Priority: optional +Section: net +Description: Utility for establishing a connection with the ISP's PPP server (e.g. via Modem) +Depends: ppp diff --git a/package/ppp/ipkg/ppp-mod-pppdump.control b/package/ppp/ipkg/ppp-mod-pppdump.control new file mode 100644 index 000000000..4a89e152e --- /dev/null +++ b/package/ppp/ipkg/ppp-mod-pppdump.control @@ -0,0 +1,5 @@ +Package: pppdump +Priority: optional +Section: net +Description: an utility to read PPP record file +Depends: ppp diff --git a/package/ppp/ipkg/ppp-mod-pppoa.control b/package/ppp/ipkg/ppp-mod-pppoa.control new file mode 100644 index 000000000..ce2d5d45f --- /dev/null +++ b/package/ppp/ipkg/ppp-mod-pppoa.control @@ -0,0 +1,5 @@ +Package: ppp-mod-pppoa +Priority: optional +Section: net +Description: a PPPoA (PPP over ATM) plugin for PPP +Depends: ppp, kmod-pppoa diff --git a/package/ppp/ipkg/ppp-mod-pppoe.control b/package/ppp/ipkg/ppp-mod-pppoe.control new file mode 100644 index 000000000..7cf49636b --- /dev/null +++ b/package/ppp/ipkg/ppp-mod-pppoe.control @@ -0,0 +1,5 @@ +Package: ppp-mod-pppoe +Priority: optional +Section: net +Description: a PPPoE (PPP over Ethernet) plugin for PPP +Depends: ppp, kmod-pppoe diff --git a/package/ppp/ipkg/ppp-mod-pppstats.control b/package/ppp/ipkg/ppp-mod-pppstats.control new file mode 100644 index 000000000..8780b2f87 --- /dev/null +++ b/package/ppp/ipkg/ppp-mod-pppstats.control @@ -0,0 +1,5 @@ +Package: pppstats +Priority: optional +Section: net +Description: an utility to report PPP statistics +Depends: ppp diff --git a/package/ppp/ipkg/ppp-mod-pppumts.control b/package/ppp/ipkg/ppp-mod-pppumts.control new file mode 100644 index 000000000..178ae2413 --- /dev/null +++ b/package/ppp/ipkg/ppp-mod-pppumts.control @@ -0,0 +1,5 @@ +Package: pppumts +Priority: optional +Section: net +Depends: comgt, chat +Description: Scripts and default configuration files to establish GPRS/UMTS connections diff --git a/package/ppp/ipkg/ppp-mod-radius.conffiles b/package/ppp/ipkg/ppp-mod-radius.conffiles new file mode 100644 index 000000000..2cfa4a146 --- /dev/null +++ b/package/ppp/ipkg/ppp-mod-radius.conffiles @@ -0,0 +1,10 @@ +/etc/radiusclient/dictionary +/etc/radiusclient/dictionary.ascend +/etc/radiusclient/dictionary.compat +/etc/radiusclient/dictionary.merit +/etc/radiusclient/dictionary.microsoft +/etc/radiusclient/issue +/etc/radiusclient/port-id-map +/etc/radiusclient/radiusclient.conf +/etc/radiusclient/realms +/etc/radiusclient/servers diff --git a/package/ppp/ipkg/ppp-mod-radius.control b/package/ppp/ipkg/ppp-mod-radius.control new file mode 100644 index 000000000..0a858da30 --- /dev/null +++ b/package/ppp/ipkg/ppp-mod-radius.control @@ -0,0 +1,5 @@ +Package: ppp-mod-radius +Priority: optional +Section: net +Description: a RADIUS plugin for PPP +Depends: ppp diff --git a/package/ppp/ipkg/ppp.conffiles b/package/ppp/ipkg/ppp.conffiles new file mode 100644 index 000000000..8ad17eb43 --- /dev/null +++ b/package/ppp/ipkg/ppp.conffiles @@ -0,0 +1,2 @@ +/etc/ppp/chap-secrets +/etc/ppp/options diff --git a/package/ppp/ipkg/ppp.control b/package/ppp/ipkg/ppp.control new file mode 100644 index 000000000..2ebff521c --- /dev/null +++ b/package/ppp/ipkg/ppp.control @@ -0,0 +1,5 @@ +Package: ppp +Priority: optional +Section: net +Depends: kmod-ppp +Description: a PPP (Point-to-Point Protocol) daemon (with MPPE/MPPC support) diff --git a/package/ppp/patches/010-use_target_for_configuration.patch b/package/ppp/patches/010-use_target_for_configuration.patch new file mode 100644 index 000000000..0b804694b --- /dev/null +++ b/package/ppp/patches/010-use_target_for_configuration.patch @@ -0,0 +1,20 @@ +$Id$ + + Use values exported from $(TOPDIR)/rules.mk for determining + the target system instead of the host configuration, d'oh + +--- ppp-2.4.3/configure.orig Sat Nov 6 11:36:32 2004 ++++ ppp-2.4.3/configure Sun Jun 18 23:40:46 2006 +@@ -8,9 +8,9 @@ SYSCONF=/etc + # if [ -d /NextApps ]; then + # system="NeXTStep" + # else +- system=`uname -s` +- release=`uname -r` +- arch=`uname -m` ++ system=${UNAME_S:-`uname -s`} ++ release=${UNAME_R:-`uname -r`} ++ arch=${UNAME_M:-`uname -m`} + # fi + state="unknown" + diff --git a/package/ppp/patches/100-debian_close_dev_ppp.patch b/package/ppp/patches/100-debian_close_dev_ppp.patch new file mode 100644 index 000000000..4e50118e8 --- /dev/null +++ b/package/ppp/patches/100-debian_close_dev_ppp.patch @@ -0,0 +1,34 @@ +From: Simon Peter <dn.tlp@gmx.net> +Subject: Bug#306261: pppd does not properly close /dev/ppp on persist + +When using the kernel PPPoE driver, pppd never +closes /dev/ppp when the link has come down. + +It opens superfluous fds to the device each time it re-opens the +connection, with the unclosed ones falsely reported always ready for +data by select(). + +This makes pppd eat up 100% CPU time after the first persist because of +the always instantly returning select() on the unclosed fds. + +The problem also occurs with the upstream version, but does not occur +when a pty/tty device is used for the ppp connection. + + +diff -u -r ppp-2.4.3/pppd/sys-linux.c ppp-2.4.3/pppd/sys-linux.c +--- ppp-2.4.3/pppd/sys-linux.c 2005-04-29 20:08:37.000000000 +0200 ++++ ppp-2.4.3/pppd/sys-linux.c 2005-04-29 20:07:03.000000000 +0200 +@@ -455,6 +455,13 @@ + if (new_style_driver) { + int flags; + ++ /* if a ppp_fd is already open, close it first */ ++ if(ppp_fd > 0) { ++ close(ppp_fd); ++ remove_fd(ppp_fd); ++ ppp_fd = -1; ++ } ++ + /* Open an instance of /dev/ppp and connect the channel to it */ + if (ioctl(fd, PPPIOCGCHAN, &chindex) == -1) { + error("Couldn't get channel number: %m"); diff --git a/package/ppp/patches/200-makefile.patch b/package/ppp/patches/200-makefile.patch new file mode 100644 index 000000000..df0f08e44 --- /dev/null +++ b/package/ppp/patches/200-makefile.patch @@ -0,0 +1,44 @@ +diff -Nur ppp-2.4.4.orig/pppd/Makefile.linux ppp-2.4.4/pppd/Makefile.linux +--- ppp-2.4.4.orig/pppd/Makefile.linux 2006-06-04 07:07:46.000000000 +0200 ++++ ppp-2.4.4/pppd/Makefile.linux 2007-10-04 08:53:26.000000000 +0200 +@@ -48,7 +48,7 @@ + # Uncomment the next line to include support for PPP packet filtering. + # This requires that the libpcap library and headers be installed + # and that the kernel driver support PPP packet filtering. +-FILTER=y ++#FILTER=y + + # Uncomment the next line to enable multilink PPP (enabled by default) + # Linux distributions: Please leave multilink ENABLED in your builds +@@ -58,9 +58,9 @@ + # Uncomment the next line to enable the TDB database (enabled by default.) + # If you enable multilink, then TDB is automatically enabled also. + # Linux distributions: Please leave TDB ENABLED in your builds. +-USE_TDB=y ++#USE_TDB=y + +-HAS_SHADOW=y ++#HAS_SHADOW=y + #USE_PAM=y + #HAVE_INET6=y + +@@ -77,7 +77,7 @@ + + INCLUDE_DIRS= -I../include + +-COMPILE_FLAGS= -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP ++COMPILE_FLAGS= -DHAVE_PATHS_H -DHAVE_MMAP + + CFLAGS= $(COPTS) $(COMPILE_FLAGS) $(INCLUDE_DIRS) '-DDESTDIR="@DESTDIR@"' + +@@ -117,10 +117,8 @@ + #LIBS += -lshadow $(LIBS) + endif + +-ifneq ($(wildcard /usr/include/crypt.h),) + CFLAGS += -DHAVE_CRYPT_H=1 + LIBS += -lcrypt +-endif + + ifdef NEEDDES + ifndef USE_CRYPT diff --git a/package/ppp/patches/201-mppe_mppc_1.1.patch b/package/ppp/patches/201-mppe_mppc_1.1.patch new file mode 100644 index 000000000..c315656a2 --- /dev/null +++ b/package/ppp/patches/201-mppe_mppc_1.1.patch @@ -0,0 +1,1587 @@ +diff -ruN ppp-2.4.3.orig/include/linux/ppp-comp.h ppp-2.4.3/include/linux/ppp-comp.h +--- ppp-2.4.3.orig/include/linux/ppp-comp.h 2002-12-06 10:49:15.000000000 +0100 ++++ ppp-2.4.3/include/linux/ppp-comp.h 2004-11-21 13:54:09.000000000 +0100 +@@ -36,7 +36,7 @@ + */ + + /* +- * ==FILEVERSION 20020319== ++ * ==FILEVERSION 20020715== + * + * NOTE TO MAINTAINERS: + * If you modify this file at all, please set the above date. +@@ -86,7 +86,7 @@ + + /* Compress a packet */ + int (*compress) (void *state, unsigned char *rptr, +- unsigned char *obuf, int isize, int osize); ++ unsigned char *obuf, int isize, int osize); + + /* Return compression statistics */ + void (*comp_stat) (void *state, struct compstat *stats); +@@ -107,7 +107,7 @@ + + /* Decompress a packet. */ + int (*decompress) (void *state, unsigned char *ibuf, int isize, +- unsigned char *obuf, int osize); ++ unsigned char *obuf, int osize); + + /* Update state for an incompressible packet received */ + void (*incomp) (void *state, unsigned char *ibuf, int icnt); +@@ -288,6 +288,33 @@ + opts |= MPPE_OPT_UNKNOWN; \ + } while (/* CONSTCOND */ 0) + ++/* MPPE/MPPC definitions by J.D.*/ ++#define MPPE_STATELESS MPPE_H_BIT /* configuration bit H */ ++#define MPPE_40BIT MPPE_L_BIT /* configuration bit L */ ++#define MPPE_56BIT MPPE_M_BIT /* configuration bit M */ ++#define MPPE_128BIT MPPE_S_BIT /* configuration bit S */ ++#define MPPE_MPPC MPPE_C_BIT /* configuration bit C */ ++ ++/* ++ * Definitions for Stac LZS. ++ */ ++ ++#define CI_LZS 17 /* config option for Stac LZS */ ++#define CILEN_LZS 5 /* length of config option */ ++ ++#define LZS_OVHD 4 /* max. LZS overhead */ ++#define LZS_HIST_LEN 2048 /* LZS history size */ ++#define LZS_MAX_CCOUNT 0x0FFF /* max. coherency counter value */ ++ ++#define LZS_MODE_NONE 0 ++#define LZS_MODE_LCB 1 ++#define LZS_MODE_CRC 2 ++#define LZS_MODE_SEQ 3 ++#define LZS_MODE_EXT 4 ++ ++#define LZS_EXT_BIT_FLUSHED 0x80 /* bit A */ ++#define LZS_EXT_BIT_COMP 0x20 /* bit C */ ++ + /* + * Definitions for other, as yet unsupported, compression methods. + */ +diff -ruN ppp-2.4.3.orig/include/net/ppp-comp.h ppp-2.4.3/include/net/ppp-comp.h +--- ppp-2.4.3.orig/include/net/ppp-comp.h 2002-12-06 10:49:15.000000000 +0100 ++++ ppp-2.4.3/include/net/ppp-comp.h 2004-11-21 13:54:09.000000000 +0100 +@@ -255,6 +255,33 @@ + opts |= MPPE_OPT_UNKNOWN; \ + } while (/* CONSTCOND */ 0) + ++/* MPPE/MPPC definitions by J.D.*/ ++#define MPPE_STATELESS MPPE_H_BIT /* configuration bit H */ ++#define MPPE_40BIT MPPE_L_BIT /* configuration bit L */ ++#define MPPE_56BIT MPPE_M_BIT /* configuration bit M */ ++#define MPPE_128BIT MPPE_S_BIT /* configuration bit S */ ++#define MPPE_MPPC MPPE_C_BIT /* configuration bit C */ ++ ++/* ++ * Definitions for Stac LZS. ++ */ ++ ++#define CI_LZS 17 /* config option for Stac LZS */ ++#define CILEN_LZS 5 /* length of config option */ ++ ++#define LZS_OVHD 4 /* max. LZS overhead */ ++#define LZS_HIST_LEN 2048 /* LZS history size */ ++#define LZS_MAX_CCOUNT 0x0FFF /* max. coherency counter value */ ++ ++#define LZS_MODE_NONE 0 ++#define LZS_MODE_LCB 1 ++#define LZS_MODE_CRC 2 ++#define LZS_MODE_SEQ 3 ++#define LZS_MODE_EXT 4 ++ ++#define LZS_EXT_BIT_FLUSHED 0x80 /* bit A */ ++#define LZS_EXT_BIT_COMP 0x20 /* bit C */ ++ + /* + * Definitions for other, as yet unsupported, compression methods. + */ +--- ppp-2.4.4/pppd/ccp.c.orig 2005-07-09 02:23:05.000000000 +0200 ++++ ppp-2.4.4/pppd/ccp.c 2006-07-21 23:34:12.121546000 +0200 +@@ -62,12 +62,10 @@ + static char bsd_value[8]; + static char deflate_value[8]; + +-/* +- * Option variables. +- */ + #ifdef MPPE +-bool refuse_mppe_stateful = 1; /* Allow stateful mode? */ +-#endif ++static int setmppe(char **); ++static int setnomppe(void); ++#endif /* MPPE */ + + static option_t ccp_option_list[] = { + { "noccp", o_bool, &ccp_protent.enabled_flag, +@@ -108,54 +106,36 @@ + "don't allow Predictor-1", OPT_ALIAS | OPT_PRIOSUB | OPT_A2CLR, + &ccp_allowoptions[0].predictor_1 }, + ++ { "lzs", o_bool, &ccp_wantoptions[0].lzs, ++ "request Stac LZS", 1, &ccp_allowoptions[0].lzs, OPT_PRIO }, ++ { "+lzs", o_bool, &ccp_wantoptions[0].lzs, ++ "request Stac LZS", 1, &ccp_allowoptions[0].lzs, OPT_ALIAS | OPT_PRIO }, ++ { "nolzs", o_bool, &ccp_wantoptions[0].lzs, ++ "don't allow Stac LZS", OPT_PRIOSUB | OPT_A2CLR, ++ &ccp_allowoptions[0].lzs }, ++ { "-lzs", o_bool, &ccp_wantoptions[0].lzs, ++ "don't allow Stac LZS", OPT_ALIAS | OPT_PRIOSUB | OPT_A2CLR, ++ &ccp_allowoptions[0].lzs }, ++ + #ifdef MPPE +- /* MPPE options are symmetrical ... we only set wantoptions here */ +- { "require-mppe", o_bool, &ccp_wantoptions[0].mppe, +- "require MPPE encryption", +- OPT_PRIO | MPPE_OPT_40 | MPPE_OPT_128 }, +- { "+mppe", o_bool, &ccp_wantoptions[0].mppe, +- "require MPPE encryption", +- OPT_ALIAS | OPT_PRIO | MPPE_OPT_40 | MPPE_OPT_128 }, +- { "nomppe", o_bool, &ccp_wantoptions[0].mppe, +- "don't allow MPPE encryption", OPT_PRIO }, +- { "-mppe", o_bool, &ccp_wantoptions[0].mppe, +- "don't allow MPPE encryption", OPT_ALIAS | OPT_PRIO }, +- +- /* We use ccp_allowoptions[0].mppe as a junk var ... it is reset later */ +- { "require-mppe-40", o_bool, &ccp_allowoptions[0].mppe, +- "require MPPE 40-bit encryption", OPT_PRIO | OPT_A2OR | MPPE_OPT_40, +- &ccp_wantoptions[0].mppe }, +- { "+mppe-40", o_bool, &ccp_allowoptions[0].mppe, +- "require MPPE 40-bit encryption", OPT_PRIO | OPT_A2OR | MPPE_OPT_40, +- &ccp_wantoptions[0].mppe }, +- { "nomppe-40", o_bool, &ccp_allowoptions[0].mppe, +- "don't allow MPPE 40-bit encryption", +- OPT_PRIOSUB | OPT_A2CLRB | MPPE_OPT_40, &ccp_wantoptions[0].mppe }, +- { "-mppe-40", o_bool, &ccp_allowoptions[0].mppe, +- "don't allow MPPE 40-bit encryption", +- OPT_ALIAS | OPT_PRIOSUB | OPT_A2CLRB | MPPE_OPT_40, |