| #!/bin/sh /etc/rc.common |
| |
| # XXX - is there something that should cause reload? or can we just |
| # use info from netifd and let it handle dynamic changes? let's hope |
| # so.. |
| |
| START=90 |
| STOP=10 |
| USE_PROCD=1 |
| |
| DNSMASQ_DIR=/tmp/dnsmasq.d |
| DNSMASQ_SCRIPT=/etc/init.d/dnsmasq |
| OHP_SCRIPT=/usr/sbin/hnetd-ohp-script |
| OHP_BINARY=/usr/sbin/ohybridproxy |
| DDZ_SCRIPT=/usr/sbin/hnetd-ddz-script |
| DDZ_BINARY=/usr/sbin/zonestitcher |
| PCP_SCRIPT=/usr/sbin/hnetd-pcp-script |
| PCP_BINARY=/usr/sbin/minimalist-pcproxy |
| MULTICAST_SCRIPT=/usr/sbin/hnet-multicast |
| WIFI_SCRIPT=/usr/sbin/autowifi |
| |
| start_service() { |
| . /lib/functions.sh |
| . /lib/functions/network.sh |
| config_load hnet |
| |
| mkdir -p $DNSMASQ_DIR |
| procd_open_instance |
| procd_set_param command /usr/sbin/hnetd |
| |
| # SD parts are here (make configurable?) |
| if [ -f $OHP_BINARY -a -f $DNSMASQ_SCRIPT ] |
| then |
| mkdir -p $DNSMASQ_DIR |
| procd_append_param command -d $DNSMASQ_SCRIPT |
| procd_append_param command -f $DNSMASQ_DIR/hnet.conf |
| procd_append_param command -o $OHP_SCRIPT |
| HOSTNAME=`cat /proc/sys/kernel/hostname` |
| if [ -n "$HOSTNAME" ] |
| then |
| procd_append_param command -n "$HOSTNAME" |
| fi |
| if [ -f $DDZ_BINARY ] |
| then |
| procd_append_param command -z $DDZ_SCRIPT |
| fi |
| fi |
| |
| # Enable multicast if present and installed |
| if [ -f "$MULTICAST_SCRIPT" ] |
| then |
| $MULTICAST_SCRIPT status && procd_append_param command -M "$MULTICAST_SCRIPT" |
| fi |
| |
| config_get enableval wifi enable |
| if [ -f "$WIFI_SCRIPT" -a "$enableval" = "1" ]; then |
| wifiopt=$WIFI_SCRIPT |
| config_get ssidval wifi ssid |
| config_get passval wifi password |
| if [ -n "$ssidval" -a -n "$passval" ]; then |
| wifiopt=${wifiopt},${ssidval}:${passval} |
| fi |
| procd_append_param command -w "$wifiopt" |
| fi |
| |
| # Enable PCP, if it's present |
| if [ -f $PCP_BINARY -a -f $PCP_SCRIPT ] |
| then |
| procd_append_param command -c $PCP_SCRIPT |
| fi |
| |
| # State file |
| config_get val pa persistent_store |
| procd_append_param command -s ${val:-/tmp/hnetd.pa_state} |
| |
| # Routing script |
| procd_append_param command -r /usr/sbin/hnetd-routing |
| |
| [ -x /usr/sbin/hnetd-tunnel ] && \ |
| procd_append_param command -t /usr/sbin/hnetd-tunnel |
| |
| # Prefix assignment (pa) |
| config_get val pa ip4prefix |
| [ -n "$val" ] && procd_append_param command --ip4prefix $val |
| |
| config_get val pa ip4mode |
| [ -n "$val" ] && procd_append_param command --ip4mode $val |
| |
| config_get val pa ulaprefix |
| [ -n "$val" ] && procd_append_param command --ulaprefix $val |
| |
| config_get val pa ulamode |
| [ -n "$val" ] && procd_append_param command --ulamode $val |
| |
| # Service discovery (sd) |
| config_get val sd router_name |
| [ -n "$val" ] && procd_append_param command -n $val |
| |
| config_get val sd domain_name |
| [ -n "$val" ] && procd_append_param command -m $val |
| |
| # Security (needs security-enabled build) |
| config_get val security password |
| [ -n "$val" ] && procd_append_param command --password $val |
| |
| config_get val security certificate_file |
| [ -n "$val" ] && procd_append_param command --certificate $val |
| |
| config_get val security private_key_file |
| [ -n "$val" ] && procd_append_param command --privatekey $val |
| |
| config_get val security trust_store |
| [ -n "$val" ] && procd_append_param command --trust $val |
| |
| config_get val security trust_certificate_file |
| [ -n "$val" ] && procd_append_param command --verify-path $val |
| |
| # For more verbose logging, uncomment this: |
| #procd_append_param command --loglevel 7 |
| |
| procd_set_param respawn |
| procd_close_instance |
| } |
| |
| service_triggers() { |
| procd_add_reload_trigger "hnet" |
| } |