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.

67 lines
1.1 KiB

  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. local _network_option
  34. config_load dawn
  35. load_tcp_config() {
  36. config_get _tcp_buffer "$1" tcp_port
  37. config_get _network_option "$1" network_option
  38. }
  39. config_foreach load_tcp_config network
  40. touch /tmp/dawn_mac_list
  41. echo "Starting Service..."
  42. procd_open_instance
  43. procd_set_param command $PROG
  44. procd_set_param respawn 3600 15 0
  45. procd_set_param stdout 0 # here it is possible to remove the debug output...
  46. procd_set_param stderr 1
  47. if [ ${_network_option} -eq 2 ]; then
  48. procd_add_mdns "dawn" "tcp" "${_tcp_buffer}"
  49. echo "UMDNS with port ${_tcp_buffer}"
  50. fi
  51. procd_close_instance
  52. echo "Dawn instance started!"
  53. }