gnunet: update source, read config from UCI, add defaults
authorDaniel Golle <redacted>
Mon, 3 Aug 2015 08:18:10 +0000 (10:18 +0200)
committerDaniel Golle <redacted>
Mon, 3 Aug 2015 13:51:22 +0000 (15:51 +0200)
Signed-off-by: Daniel Golle <redacted>
net/gnunet/Makefile
net/gnunet/files/gnunet.defaults [new file with mode: 0644]
net/gnunet/files/gnunet.init

index 9660a314f08b53e70a557eeb51fed6f3eb5675b0..898b8d39463b5dd7d3a7cede18a25ee4b97dc740 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gnunet
-PKG_SOURCE_VERSION:=36139
+PKG_SOURCE_VERSION:=36190
 PKG_VERSION:=0.10.1-svn$(PKG_SOURCE_VERSION)
 PKG_RELEASE:=1
 
@@ -167,6 +167,8 @@ define Package/gnunet/install
        $(INSTALL_BIN) ./files/gnunet.init $(1)/etc/init.d/gnunet
        $(INSTALL_DIR) $(1)/lib/upgrade/keep.d
        $(INSTALL_DATA) ./files/gnunet.upgrade $(1)/lib/upgrade/keep.d/gnunet
+       $(INSTALL_DIR) $(1)/etc/uci-defaults
+       $(INSTALL_BIN) ./files/gnunet.defaults $(1)/etc/uci-defaults/gnunet
 endef
 
 define Build/InstallDev
diff --git a/net/gnunet/files/gnunet.defaults b/net/gnunet/files/gnunet.defaults
new file mode 100644 (file)
index 0000000..dbb5050
--- /dev/null
@@ -0,0 +1,40 @@
+#!/bin/sh
+
+[ -e /etc/config/gnunet ] && exit 0
+
+touch /etc/config/gnunet
+
+uci set gnunet.datastore=gnunet-config
+uci set gnunet.datastore.DATABASE=heap
+uci set gnunet.datastore.QUOTA="4 MB"
+
+uci set gnunet.fs=gnunet-config
+uci set gnunet.fs.CONTENT_PUSHING=NO
+uci set gnunet.fs.CONTENT_CACHING=NO
+
+# limit dhtcache memory usage to 4 MB
+uci set gnunet.dhtcache=gnunet-config
+uci set gnunet.dhtcache.QUOTA="4 MB"
+
+# enable dns2gns
+uci set gnunet.dns2gns=gnunet-config
+uci set gnunet.dns2gns.AUTOSTART=YES
+uci set gnunet.dns2gns.FORCESTART=YES
+
+# enable v4/v6 protocol translation for EXIT/VPN
+uci set gnunet.pt=gnunet-config
+uci set gnunet.pt.FORCESTART=YES
+
+uci set gnunet.exit=gnunet-config
+uci set gnunet.exit.AUTOSTART=YES
+uci set gnunet.exit.FORCESTART=YES
+uci set gnunet.exit.EXIT_IPV4=YES
+uci set gnunet.exit.EXIT_RANGE_IPV4_POLICY="169.254.86.1:7;169.254.86.1:5201;"
+
+# iperf (TCP) and echo (UDP) for battlemesh
+uci set gnunet.iperf=gnunet-exit-service
+uci set gnunet.iperf.TCP_REDIRECTS="5201:169.254.86.1:5201"
+uci set gnunet.echo=gnunet-exit-service
+uci set gnunet.echo.UDP_REDIRECTS="7:169.254.86.1:7"
+
+uci commit gnunet
index 8b810d7b0d342d4d00ba5687e9b4390ebe337c54..aa8742295f6be6e6cc5795f4b8bc864167eb7833 100644 (file)
@@ -47,6 +47,8 @@ prepare_config() {
                mkdir -p /etc/gnunet
                chown gnunet:gnunet /etc/gnunet
        }
+
+       # defaults paths
        gnunet-config -c $CONFIGFILE -s PATHS -o GNUNET_CONFIG_HOME -V /etc/gnunet
        gnunet-config -c $CONFIGFILE -s PEER -o PRIVATE_KEY -V /etc/gnunet/private_key.ecc
        gnunet-config -c $CONFIGFILE -s identity -o EGODIR -V /etc/gnunet/identity/egos
@@ -54,19 +56,6 @@ prepare_config() {
        gnunet-config -c $CONFIGFILE -s nse -o PROOFFILE -V /etc/gnunet/proof.dat
        gnunet-config -c $CONFIGFILE -s namestore-sqlite -o FILENAME -V /etc/gnunet/namestore.sqlite
 
-       # minimal datastore (todo: make this configurable)
-       gnunet-config -c $CONFIGFILE -s datastore -o DATABASE -V heap
-       gnunet-config -c $CONFIGFILE -s datastore -o QUOTA -V "4 MB"
-       gnunet-config -c $CONFIGFILE -s fs -o CONTENT_PUSHING -V NO
-       gnunet-config -c $CONFIGFILE -s fs -o CONTENT_CACHING -V NO
-
-       # limit dhtcache memory usage to 4 MB
-       gnunet-config -c $CONFIGFILE -s dhtcache -o QUOTA -V "4 MB"
-
-       # enable dns2gns
-       gnunet-config -c $CONFIGFILE -s dns2gns -o AUTOSTART -V YES
-       gnunet-config -c $CONFIGFILE -s dns2gns -o FORCESTART -V YES
-
        # enable all installed transport plugins
        transport_plugins=$(gnunet-config -c $CONFIGFILE -s transport -o PLUGINS)
        for transplug in /usr/lib/gnunet/libgnunet_plugin_transport_*.so; do
@@ -77,18 +66,27 @@ prepare_config() {
        done
        gnunet-config -c $CONFIGFILE -s transport -o PLUGINS -V "$transport_plugins"
 
-       gnunet-config -c $CONFIGFILE -s pt -o FORCESTART -V YES
-       gnunet-config -c $CONFIGFILE -s exit -o AUTOSTART -V YES
-       gnunet-config -c $CONFIGFILE -s exit -o FORCESTART -V YES
-       gnunet-config -c $CONFIGFILE -s exit -o EXIT_IPV4 -V YES
-       # ssh and www services
-#      gnunet-config -c $CONFIGFILE -s exit -o EXIT_RANGE_IPV4_POLICY -V "169.254.86.1:22;169.254.86.1:80;"
-#      gnunet-config -c $CONFIGFILE -s ssh.gnunet. -o TCP_REDIRECTS -V "22:169.254.86.1:22"
-#      gnunet-config -c $CONFIGFILE -s www.gnunet. -o TCP_REDIRECTS -V "80:169.254.86.1:80"
-       # iperf (TCP) and echo (UDP) for battlemesh
-       gnunet-config -c $CONFIGFILE -s exit -o EXIT_RANGE_IPV4_POLICY -V "169.254.86.1:7;169.254.86.1:5201;"
-       gnunet-config -c $CONFIGFILE -s iperf.gnunet. -o TCP_REDIRECTS -V "5201:169.254.86.1:5201"
-       gnunet-config -c $CONFIGFILE -s echo.gnunet. -o UDP_REDIRECTS -V "7:169.254.86.1:7"
+       # apply config from UCI
+       _gnunet_section=""
+       config_cb()
+       {
+               # $1    "Type"
+               # $2    "Name"
+               local __TYPE="$1"
+               local __NAME="$2"
+               [ "${__TYPE}" = "gnunet-config" ] && _gnunet_section="${__NAME}"
+               [ "${__TYPE}" = "gnunet-exit-service" ] && _gnunet_section="${__NAME}.gnunet."
+       }
+       option_cb() {
+               # $1    name of variable
+               # $2    value
+               local __OPT="$1"
+               local __VAL="$2"
+               gnunet-config -c $CONFIGFILE -s ${_gnunet_section} -o ${__OPT} -V "${__VAL}"
+       }
+       config_load gnunet
+
+       return 0
 }
 
 start_service() {
git clone https://git.99rst.org/PROJECT