gluon-l3roamd 967 B

1234567891011121314151617181920212223242526
  1. #!/bin/sh /etc/rc.common
  2. START=55
  3. USE_PROCD=1
  4. PROG=/usr/sbin/l3roamd
  5. start_service () {
  6. procd_open_instance
  7. procd_set_param stdout 1
  8. procd_set_param stderr 1
  9. procd_set_param respawn ${respawn_threshold:-3660} ${respawn_timeout:-5} ${respawn_retry:-0}
  10. interfaces=$(for dev in $( ubus call network.interface dump | jsonfilter -e "@.interface[@.proto='gluon_mesh' && @.up=true].device");do echo " -m $dev"; done;
  11. [ "$(ifstatus client | jsonfilter -e "@.up")" = "true" ] && echo " -i local-node")
  12. procd_set_param command "$PROG" -s /var/run/l3roamd.sock -p $(lua -e 'print(require("gluon.site").prefix6())') $interfaces -t 254 -a $(uci get network.loopback.ip6addr | cut -d/ -f1) -4 0:0:0:0:0:ffff::/96 -b br-client
  13. procd_close_instance
  14. }
  15. service_triggers() {
  16. local script=$(readlink "$initscript")
  17. local name=$(basename "${script:-$initscript}")
  18. procd_open_trigger
  19. procd_add_raw_trigger "interface.*" 0 "/etc/init.d/$name" reload
  20. procd_close_trigger
  21. }