You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
969 B

  1. #!/bin/sh /etc/rc.common
  2. USE_PROCD=1
  3. START=81
  4. STOP=81
  5. PROG=/usr/sbin/dawn
  6. NAME=dawn
  7. wait_for_network()
  8. {
  9. ubus -t 15 wait_for network.interface.$1 2>/dev/null
  10. }
  11. boot()
  12. {
  13. ubus -t 5 wait_for umdns 2>/dev/null
  14. config_load network
  15. config_foreach wait_for_network interface
  16. rc_procd start_service
  17. }
  18. reload_service()
  19. {
  20. if service_running; then
  21. ubus call dawn reload_config
  22. else
  23. start
  24. fi
  25. }
  26. service_triggers()
  27. {
  28. procd_add_reload_trigger "dawn"
  29. }
  30. start_service()
  31. {
  32. local _tcp_buffer
  33. config_load dawn
  34. load_tcp_port() {
  35. config_get _tcp_buffer "$1" tcp_port
  36. }
  37. config_foreach load_tcp_port network
  38. touch /tmp/dawn_mac_list
  39. echo "Starting Service..."
  40. procd_open_instance
  41. procd_set_param command $PROG
  42. procd_set_param stdout 0 # here it is possible to remove the debug output...
  43. procd_set_param stderr 1
  44. procd_add_mdns "dawn" "tcp" "${_tcp_buffer}"
  45. procd_close_instance
  46. echo "Dawn instance started!"
  47. echo "UMDNS with port ${_tcp_buffer}"
  48. }