- #!/bin/sh /etc/rc.common
- # Copyright (C) 2015 OpenWrt.org
-
- START=50
- STOP=10
-
- USE_PROCD=1
- PROG=/usr/lib/gnunet/libexec/gnunet-service-arm
-
- GNUNET_HOME=/var/run/gnunet
- CONFIGFILE=$GNUNET_HOME/gnunet.conf
- SUID_ROOT_HELPERS="exit nat-server nat-client transport-bluetooth transport-wlan vpn"
-
- chmodown_execbin() {
- execname=/usr/lib/gnunet/libexec/gnunet-$1
- if [ -x $execname ]; then
- chmod $2 $execname
- [ "$3" ] && chown $3 $execname
- fi
- }
-
- fix_libexec_permissions() {
- [ -e /usr/share/gnunet/.permfix ] && return
- for helper in $SUID_ROOT_HELPERS; do
- chmodown_execbin helper-$helper u+s
- done
- chmodown_execbin helper-dns 4750 root:gnunetdns
- chmodown_execbin service-dns 2750 root:gnunetdns
-
- touch /usr/share/gnunet/.permfix
- }
-
- prepare_config() {
- mkdir -p $GNUNET_HOME
- chown gnunet:gnunet $GNUNET_HOME
- chmod 0750 $GNUNET_HOME
- touch $CONFIGFILE
- chown root:gnunet $CONFIGFILE
- chmod 0640 $CONFIGFILE
- gnunet-config -c /tmp/run/gnunet/gnunet.conf -s PATHS -o GNUNET_HOME -V $GNUNET_HOME
- defaultservices=$( gnunet-config -c /tmp/run/gnunet/gnunet.conf -s arm -o DEFAULTSERVICES )
- defaultservices="$defaultservices gns2dns"
- gnunet-config -c /tmp/run/gnunet/gnunet.conf -s arm -o DEFAULTSERVICES -V "$defaultservices"
- }
-
- start_service() {
- fix_libexec_permissions
- [ ! -e $GNUNET_HOME ] && prepare_config
-
- procd_open_instance
- procd_set_param user gnunet
- procd_set_param command $PROG -c $CONFIGFILE
- procd_set_param respawn
- procd_close_instance
- }
|