b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame] | 1 | #!/bin/sh /etc/rc.common |
| 2 | |
| 3 | # XXX - is there something that should cause reload? or can we just |
| 4 | # use info from netifd and let it handle dynamic changes? let's hope |
| 5 | # so.. |
| 6 | |
| 7 | START=90 |
| 8 | STOP=10 |
| 9 | USE_PROCD=1 |
| 10 | |
| 11 | DNSMASQ_DIR=/tmp/dnsmasq.d |
| 12 | DNSMASQ_SCRIPT=/etc/init.d/dnsmasq |
| 13 | OHP_SCRIPT=/usr/sbin/hnetd-ohp-script |
| 14 | OHP_BINARY=/usr/sbin/ohybridproxy |
| 15 | DDZ_SCRIPT=/usr/sbin/hnetd-ddz-script |
| 16 | DDZ_BINARY=/usr/sbin/zonestitcher |
| 17 | PCP_SCRIPT=/usr/sbin/hnetd-pcp-script |
| 18 | PCP_BINARY=/usr/sbin/minimalist-pcproxy |
| 19 | MULTICAST_SCRIPT=/usr/sbin/hnet-multicast |
| 20 | WIFI_SCRIPT=/usr/sbin/autowifi |
| 21 | |
| 22 | start_service() { |
| 23 | . /lib/functions.sh |
| 24 | . /lib/functions/network.sh |
| 25 | config_load hnet |
| 26 | |
| 27 | mkdir -p $DNSMASQ_DIR |
| 28 | procd_open_instance |
| 29 | procd_set_param command /usr/sbin/hnetd |
| 30 | |
| 31 | # SD parts are here (make configurable?) |
| 32 | if [ -f $OHP_BINARY -a -f $DNSMASQ_SCRIPT ] |
| 33 | then |
| 34 | mkdir -p $DNSMASQ_DIR |
| 35 | procd_append_param command -d $DNSMASQ_SCRIPT |
| 36 | procd_append_param command -f $DNSMASQ_DIR/hnet.conf |
| 37 | procd_append_param command -o $OHP_SCRIPT |
| 38 | HOSTNAME=`cat /proc/sys/kernel/hostname` |
| 39 | if [ -n "$HOSTNAME" ] |
| 40 | then |
| 41 | procd_append_param command -n "$HOSTNAME" |
| 42 | fi |
| 43 | if [ -f $DDZ_BINARY ] |
| 44 | then |
| 45 | procd_append_param command -z $DDZ_SCRIPT |
| 46 | fi |
| 47 | fi |
| 48 | |
| 49 | # Enable multicast if present and installed |
| 50 | if [ -f "$MULTICAST_SCRIPT" ] |
| 51 | then |
| 52 | $MULTICAST_SCRIPT status && procd_append_param command -M "$MULTICAST_SCRIPT" |
| 53 | fi |
| 54 | |
| 55 | config_get enableval wifi enable |
| 56 | if [ -f "$WIFI_SCRIPT" -a "$enableval" = "1" ]; then |
| 57 | wifiopt=$WIFI_SCRIPT |
| 58 | config_get ssidval wifi ssid |
| 59 | config_get passval wifi password |
| 60 | if [ -n "$ssidval" -a -n "$passval" ]; then |
| 61 | wifiopt=${wifiopt},${ssidval}:${passval} |
| 62 | fi |
| 63 | procd_append_param command -w "$wifiopt" |
| 64 | fi |
| 65 | |
| 66 | # Enable PCP, if it's present |
| 67 | if [ -f $PCP_BINARY -a -f $PCP_SCRIPT ] |
| 68 | then |
| 69 | procd_append_param command -c $PCP_SCRIPT |
| 70 | fi |
| 71 | |
| 72 | # State file |
| 73 | config_get val pa persistent_store |
| 74 | procd_append_param command -s ${val:-/tmp/hnetd.pa_state} |
| 75 | |
| 76 | # Routing script |
| 77 | procd_append_param command -r /usr/sbin/hnetd-routing |
| 78 | |
| 79 | [ -x /usr/sbin/hnetd-tunnel ] && \ |
| 80 | procd_append_param command -t /usr/sbin/hnetd-tunnel |
| 81 | |
| 82 | # Prefix assignment (pa) |
| 83 | config_get val pa ip4prefix |
| 84 | [ -n "$val" ] && procd_append_param command --ip4prefix $val |
| 85 | |
| 86 | config_get val pa ip4mode |
| 87 | [ -n "$val" ] && procd_append_param command --ip4mode $val |
| 88 | |
| 89 | config_get val pa ulaprefix |
| 90 | [ -n "$val" ] && procd_append_param command --ulaprefix $val |
| 91 | |
| 92 | config_get val pa ulamode |
| 93 | [ -n "$val" ] && procd_append_param command --ulamode $val |
| 94 | |
| 95 | # Service discovery (sd) |
| 96 | config_get val sd router_name |
| 97 | [ -n "$val" ] && procd_append_param command -n $val |
| 98 | |
| 99 | config_get val sd domain_name |
| 100 | [ -n "$val" ] && procd_append_param command -m $val |
| 101 | |
| 102 | # Security (needs security-enabled build) |
| 103 | config_get val security password |
| 104 | [ -n "$val" ] && procd_append_param command --password $val |
| 105 | |
| 106 | config_get val security certificate_file |
| 107 | [ -n "$val" ] && procd_append_param command --certificate $val |
| 108 | |
| 109 | config_get val security private_key_file |
| 110 | [ -n "$val" ] && procd_append_param command --privatekey $val |
| 111 | |
| 112 | config_get val security trust_store |
| 113 | [ -n "$val" ] && procd_append_param command --trust $val |
| 114 | |
| 115 | config_get val security trust_certificate_file |
| 116 | [ -n "$val" ] && procd_append_param command --verify-path $val |
| 117 | |
| 118 | # For more verbose logging, uncomment this: |
| 119 | #procd_append_param command --loglevel 7 |
| 120 | |
| 121 | procd_set_param respawn |
| 122 | procd_close_instance |
| 123 | } |
| 124 | |
| 125 | service_triggers() { |
| 126 | procd_add_reload_trigger "hnet" |
| 127 | } |