| b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame] | 1 | #!/bin/sh /etc/rc.common |
| 2 | # Copyright (C) 2006 OpenWrt.org |
| 3 | |
| 4 | START=49 |
| 5 | USE_PROCD=1 |
| 6 | PROG=/usr/sbin/htpdate |
| 7 | |
| 8 | |
| 9 | |
| 10 | |
| 11 | validate_htpdate_section() { |
| 12 | uci_load_validate htpdate htpdate "$1" "$2" \ |
| 13 | 'server:list(host)' \ |
| 14 | 'proxy_host:host' \ |
| 15 | 'proxy_port:port:8080' \ |
| 16 | 'debug:bool:0' \ |
| 17 | 'sanity_check:bool:1' \ |
| 18 | 'option:list(string)' \ |
| 19 | 'enabled:bool:1' |
| 20 | } |
| 21 | |
| 22 | |
| 23 | start_htpdate_instance() { |
| 24 | local peer |
| 25 | |
| 26 | [ "$2" = 0 ] || { |
| 27 | echo "validation failed" |
| 28 | return 1 |
| 29 | } |
| 30 | |
| 31 | [ "$enabled" = 0 ] && return |
| 32 | |
| 33 | |
| 34 | procd_open_instance |
| 35 | procd_set_param command "$PROG" -f |
| 36 | |
| 37 | [ -n "$proxy_host" ] && procd_append_param command -P $proxy_host:$proxy_port |
| 38 | [ "$debug" = "1" ] && procd_append_param command -d |
| 39 | [ "$sanity_check" = "0" ] && procd_append_param command -t |
| 40 | [ -n "$option" ] && procd_append_param command $option |
| 41 | for peer in $server; do |
| 42 | procd_append_param command $peer |
| 43 | done |
| 44 | |
| 45 | procd_set_param stdout 1 |
| 46 | procd_set_param stderr 1 |
| 47 | procd_set_param respawn |
| 48 | procd_close_instance |
| 49 | } |
| 50 | |
| 51 | start_service() { |
| 52 | validate_htpdate_section htpdate start_htpdate_instance |
| 53 | } |
| 54 | |
| 55 | service_triggers() { |
| 56 | procd_add_reload_trigger "htpdate" |
| 57 | procd_add_validation validate_htpdate_section |
| 58 | } |