[1/1] Temporarily added tunneldigger package as a fff package.

Submitted by Steffen Pankratz on Oct. 31, 2016, 6:21 p.m.

Details

Message ID 20161031182120.16191-1-kratz00@gmx.de
State Accepted
Commit 794afe2d667e1f7a432e6246f5ee97ed046151de
Headers show

Commit Message

Steffen Pankratz Oct. 31, 2016, 6:21 p.m.
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>
---
 buildscript                                        |  7 +-
 src/packages/fff/tunneldigger/Makefile             | 47 +++++++++++++
 src/packages/fff/tunneldigger/files/config.default |  8 +++
 .../fff/tunneldigger/files/tunneldigger.init       | 80 ++++++++++++++++++++++
 4 files changed, 136 insertions(+), 6 deletions(-)
 create mode 100644 src/packages/fff/tunneldigger/Makefile
 create mode 100644 src/packages/fff/tunneldigger/files/config.default
 create mode 100755 src/packages/fff/tunneldigger/files/tunneldigger.init

Patch hide | download patch | download mbox

diff --git a/buildscript b/buildscript
index 0205bd0..03c7d23 100755
--- a/buildscript
+++ b/buildscript
@@ -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
diff --git a/src/packages/fff/tunneldigger/Makefile b/src/packages/fff/tunneldigger/Makefile
new file mode 100644
index 0000000..a8838f1
--- /dev/null
+++ b/src/packages/fff/tunneldigger/Makefile
@@ -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))
diff --git a/src/packages/fff/tunneldigger/files/config.default b/src/packages/fff/tunneldigger/files/config.default
new file mode 100644
index 0000000..571621a
--- /dev/null
+++ b/src/packages/fff/tunneldigger/files/config.default
@@ -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'
diff --git a/src/packages/fff/tunneldigger/files/tunneldigger.init b/src/packages/fff/tunneldigger/files/tunneldigger.init
new file mode 100755
index 0000000..875ecba
--- /dev/null
+++ b/src/packages/fff/tunneldigger/files/tunneldigger.init
@@ -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
+}

Comments

Christian Dresel Nov. 1, 2016, 9:58 a.m.
hi

getestet und funktioniert, danke :)

Tested-by: Christian Dresel <fff@chrisi01.de>

mfg

Christian


On 31.10.2016 19:21, Steffen Pankratz wrote:
> 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>
> ---
>  buildscript                                        |  7 +-
>  src/packages/fff/tunneldigger/Makefile             | 47 +++++++++++++
>  src/packages/fff/tunneldigger/files/config.default |  8 +++
>  .../fff/tunneldigger/files/tunneldigger.init       | 80 ++++++++++++++++++++++
>  4 files changed, 136 insertions(+), 6 deletions(-)
>  create mode 100644 src/packages/fff/tunneldigger/Makefile
>  create mode 100644 src/packages/fff/tunneldigger/files/config.default
>  create mode 100755 src/packages/fff/tunneldigger/files/tunneldigger.init
> 
> diff --git a/buildscript b/buildscript
> index 0205bd0..03c7d23 100755
> --- a/buildscript
> +++ b/buildscript
> @@ -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
> diff --git a/src/packages/fff/tunneldigger/Makefile b/src/packages/fff/tunneldigger/Makefile
> new file mode 100644
> index 0000000..a8838f1
> --- /dev/null
> +++ b/src/packages/fff/tunneldigger/Makefile
> @@ -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))
> diff --git a/src/packages/fff/tunneldigger/files/config.default b/src/packages/fff/tunneldigger/files/config.default
> new file mode 100644
> index 0000000..571621a
> --- /dev/null
> +++ b/src/packages/fff/tunneldigger/files/config.default
> @@ -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'
> diff --git a/src/packages/fff/tunneldigger/files/tunneldigger.init b/src/packages/fff/tunneldigger/files/tunneldigger.init
> new file mode 100755
> index 0000000..875ecba
> --- /dev/null
> +++ b/src/packages/fff/tunneldigger/files/tunneldigger.init
> @@ -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
> +}
>
Robert Langhammer Nov. 1, 2016, 5:25 p.m.
Hallo,

getestet und läuft

Allerdings nicht mit älteren Brokern. Unser erster Broker in der
Has-Hood vom Februar 16 war zu alt. Man merkt es am Router, der Tunnel
hat 0 RX Bytes und am GW kommen ERRORs im log beim entsprechenden Router.

Ein "git pull" am GW im Tunneldiggerverzeichnis 
(/srv/tunneldigger/tunneldigger/) hilft.


Tested-by: Robert Langhammer rlanghammer@web.de

Viele Grüße

Robert


Am 31.10.2016 um 19:21 schrieb Steffen Pankratz:
> 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>
> ---
>  buildscript                                        |  7 +-
>  src/packages/fff/tunneldigger/Makefile             | 47 +++++++++++++
>  src/packages/fff/tunneldigger/files/config.default |  8 +++
>  .../fff/tunneldigger/files/tunneldigger.init       | 80 ++++++++++++++++++++++
>  4 files changed, 136 insertions(+), 6 deletions(-)
>  create mode 100644 src/packages/fff/tunneldigger/Makefile
>  create mode 100644 src/packages/fff/tunneldigger/files/config.default
>  create mode 100755 src/packages/fff/tunneldigger/files/tunneldigger.init
>
> diff --git a/buildscript b/buildscript
> index 0205bd0..03c7d23 100755
> --- a/buildscript
> +++ b/buildscript
> @@ -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
> diff --git a/src/packages/fff/tunneldigger/Makefile b/src/packages/fff/tunneldigger/Makefile
> new file mode 100644
> index 0000000..a8838f1
> --- /dev/null
> +++ b/src/packages/fff/tunneldigger/Makefile
> @@ -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))
> diff --git a/src/packages/fff/tunneldigger/files/config.default b/src/packages/fff/tunneldigger/files/config.default
> new file mode 100644
> index 0000000..571621a
> --- /dev/null
> +++ b/src/packages/fff/tunneldigger/files/config.default
> @@ -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'
> diff --git a/src/packages/fff/tunneldigger/files/tunneldigger.init b/src/packages/fff/tunneldigger/files/tunneldigger.init
> new file mode 100755
> index 0000000..875ecba
> --- /dev/null
> +++ b/src/packages/fff/tunneldigger/files/tunneldigger.init
> @@ -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
> +}
Jan Kraus Nov. 4, 2016, 1:29 a.m.
Hi,

ist ja quasi das Originalpaket mit der empfohlenen Commit-ID drin.
Deshalb:
Reviewed-by: Jan Kraus <mayosemmel@gmail.com>

Wenn in der kommenden 2ten Beta alles gut läuft, sollten wir den Jungs
von WlanSlovenia entsprechende Rückmeldung geben. Dann können wir
anschließend auch wieder direkt den Upstrem verwenden.

Grüße Jan

Am Montag, den 31.10.2016, 19:21 +0100 schrieb Steffen Pankratz:
> 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>
> ---
>  buildscript                                        |  7 +-
>  src/packages/fff/tunneldigger/Makefile             | 47 +++++++++++++
>  src/packages/fff/tunneldigger/files/config.default |  8 +++
>  .../fff/tunneldigger/files/tunneldigger.init       | 80 ++++++++++++++++++++++
>  4 files changed, 136 insertions(+), 6 deletions(-)
>  create mode 100644 src/packages/fff/tunneldigger/Makefile
>  create mode 100644 src/packages/fff/tunneldigger/files/config.default
>  create mode 100755 src/packages/fff/tunneldigger/files/tunneldigger.init
> 
> diff --git a/buildscript b/buildscript
> index 0205bd0..03c7d23 100755
> --- a/buildscript
> +++ b/buildscript
> @@ -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
> diff --git a/src/packages/fff/tunneldigger/Makefile b/src/packages/fff/tunneldigger/Makefile
> new file mode 100644
> index 0000000..a8838f1
> --- /dev/null
> +++ b/src/packages/fff/tunneldigger/Makefile
> @@ -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))
> diff --git a/src/packages/fff/tunneldigger/files/config.default b/src/packages/fff/tunneldigger/files/config.default
> new file mode 100644
> index 0000000..571621a
> --- /dev/null
> +++ b/src/packages/fff/tunneldigger/files/config.default
> @@ -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'
> diff --git a/src/packages/fff/tunneldigger/files/tunneldigger.init b/src/packages/fff/tunneldigger/files/tunneldigger.init
> new file mode 100755
> index 0000000..875ecba
> --- /dev/null
> +++ b/src/packages/fff/tunneldigger/files/tunneldigger.init
> @@ -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
> +}
> -- 
> 2.10.1
>
Tim Niemeyer Nov. 4, 2016, 7:05 a.m.
Hi

Und applied.

Danke!

Tim

Am Montag, den 31.10.2016, 19:21 +0100 schrieb Steffen Pankratz:
> 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>
> ---
>  buildscript                                        |  7 +-
>  src/packages/fff/tunneldigger/Makefile             | 47 +++++++++++++
>  src/packages/fff/tunneldigger/files/config.default |  8 +++
>  .../fff/tunneldigger/files/tunneldigger.init       | 80 ++++++++++++++++++++++
>  4 files changed, 136 insertions(+), 6 deletions(-)
>  create mode 100644 src/packages/fff/tunneldigger/Makefile
>  create mode 100644 src/packages/fff/tunneldigger/files/config.default
>  create mode 100755 src/packages/fff/tunneldigger/files/tunneldigger.init
> 
> diff --git a/buildscript b/buildscript
> index 0205bd0..03c7d23 100755
> --- a/buildscript
> +++ b/buildscript
> @@ -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
> diff --git a/src/packages/fff/tunneldigger/Makefile b/src/packages/fff/tunneldigger/Makefile
> new file mode 100644
> index 0000000..a8838f1
> --- /dev/null
> +++ b/src/packages/fff/tunneldigger/Makefile
> @@ -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))
> diff --git a/src/packages/fff/tunneldigger/files/config.default b/src/packages/fff/tunneldigger/files/config.default
> new file mode 100644
> index 0000000..571621a
> --- /dev/null
> +++ b/src/packages/fff/tunneldigger/files/config.default
> @@ -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'
> diff --git a/src/packages/fff/tunneldigger/files/tunneldigger.init b/src/packages/fff/tunneldigger/files/tunneldigger.init
> new file mode 100755
> index 0000000..875ecba
> --- /dev/null
> +++ b/src/packages/fff/tunneldigger/files/tunneldigger.init
> @@ -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
> +}
> -- 
> 2.10.1
>