Temporarily added tunneldigger package as a fff package.

Because we want to test this tunneldigger version in order to move on
with https://github.com/wlanslovenija/firmware-packages-opkg/pull/10

Signed-off-by: Steffen Pankratz <kratz00@gmx.de>
Tested-by: Christian Dresel <fff@chrisi01.de>
Tested-by: Robert Langhammer rlanghammer@web.de
Reviewed-by: Jan Kraus <mayosemmel@gmail.com>
This commit is contained in:
Steffen Pankratz 2016-10-31 19:21:20 +01:00 committed by Tim Niemeyer
parent d172ff8c4c
commit 794afe2d66
4 changed files with 136 additions and 6 deletions

View File

@ -39,15 +39,10 @@ ROUTING=(routing
e870c3373eea80df852d42fac3f40aaffd7a0f58)
ROUTING_PKGS="alfred"
WLANSLOVENIJA=(wlanslovenija
https://github.com/wlanslovenija/firmware-packages-opkg
fec592e0540ef883bc8b27b77e7ff45d93ed3f24)
WLANSLOVENIJA_PKGS="tunneldigger"
FFF=(fff)
FFF_PKGS="-a"
FEEDS=(OPENWRT ROUTING GLUON WLANSLOVENIJA FFF)
FEEDS=(OPENWRT ROUTING GLUON FFF)
checkout_git(){
local DIRECTORY=$1

View File

@ -0,0 +1,47 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=tunneldigger
PKG_VERSION:=0.4.5
PKG_RELEASE:=1
PKG_REV:=0bae1419da12de64d1c7571c5f6649d39d682052
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=git://github.com/wlanslovenija/tunneldigger.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=$(PKG_REV)
include $(INCLUDE_DIR)/package.mk
define Package/tunneldigger
SECTION:=net
CATEGORY:=Network
DEPENDS:=+libnl-tiny +kmod-l2tp +kmod-l2tp-ip +kmod-l2tp-eth +librt +libpthread
TITLE:=tunneldigger
endef
TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include/libnl-tiny \
-I$(STAGING_DIR)/usr/include \
-DLIBNL_TINY
define Build/Prepare
$(call Build/Prepare/Default)
mv $(PKG_BUILD_DIR)/client/* $(PKG_BUILD_DIR)
sed -i s/-lnl/-lnl-tiny/g $(PKG_BUILD_DIR)/Makefile
endef
define Package/tunneldigger/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/l2tp_client $(1)/usr/bin/tunneldigger
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/tunneldigger.init $(1)/etc/init.d/tunneldigger
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_DATA) ./files/config.default $(1)/etc/config/tunneldigger
endef
define Package/tunneldigger/conffiles
/etc/config/tunneldigger
endef
$(eval $(call BuildPackage,tunneldigger))

View File

@ -0,0 +1,8 @@
config broker
list address 'x.y.z.w:8942'
list address 'x.y.z.w:53'
list address 'x.y.z.w:123'
option uuid 'abcd'
option interface 'l2tp0'
option limit_bw_down '1024'
option enabled '0'

View File

@ -0,0 +1,80 @@
#!/bin/sh /etc/rc.common
. $IPKG_INSTROOT/lib/functions/network.sh
START=90
PIDPATH=/var/run
tunnel_id=1
missing() {
echo "Not starting tunneldigger - missing $1" >&2
}
config_cb() {
local cfg="$CONFIG_SECTION"
config_get configname "$cfg" TYPE
case "$configname" in
broker)
config_get_bool enabled "$cfg" enabled 1
config_get addresses "$cfg" address
config_get uuid "$cfg" uuid
config_get interface "$cfg" interface
config_get limit_bw_down "$cfg" limit_bw_down
config_get hook_script "$cfg" hook_script
config_get bind_interface "$cfg" bind_interface
[ $enabled -eq 0 ] && return
local broker_opts=""
for address in $addresses; do
append broker_opts "-b ${address}"
done
[ ! -z "${limit_bw_down}" ] && append broker_opts "-L ${limit_bw_down}"
[ ! -z "${hook_script}" ] && append broker_opts "-s ${hook_script}"
[ ! -z "${bind_interface}" ] && {
# Resolve logical interface name.
unset _bind_interface
network_get_device _bind_interface "${bind_interface}" || _bind_interface="${bind_interface}"
append broker_opts "-I ${_bind_interface}"
}
if [ -z "$uuid" ]; then
missing uuid
return
elif [ -z "$interface" ]; then
missing interface
return
fi
echo "Starting tunneldigger on ${interface}"
/sbin/start-stop-daemon -S -q -b -m -p ${PIDPATH}/tunneldigger.${interface}.pid -x /usr/bin/tunneldigger -- -u ${uuid} -i ${interface} -t ${tunnel_id} ${broker_opts}
let tunnel_id++
;;
esac
}
start() {
config_load tunneldigger
}
stop() {
for PIDFILE in `find ${PIDPATH}/ -name "tunneldigger\.*\.pid"`; do
PID="$(cat ${PIDFILE})"
IFACE="$(echo ${PIDFILE} | awk -F\/tunneldigger '{print $2}' | cut -d'.' -f2)"
echo "Stopping tunneldigger for interface ${IFACE}"
start-stop-daemon -K -q -p $PIDFILE
while test -d "/proc/${PID}"; do
echo " waiting for tunneldigger to stop"
sleep 1
done
echo " tunneldigger stopped"
done
}
restart() {
stop
start
}