diff --git a/uspd/files/etc/init.d/uspd b/uspd/files/etc/init.d/uspd index 6c5b269e1..afc6662fe 100644 --- a/uspd/files/etc/init.d/uspd +++ b/uspd/files/etc/init.d/uspd @@ -45,19 +45,35 @@ configure_uspd() fi } +apply_sysctl_configuration() { + local sysctl_conf + + sysctl_conf="/etc/bbfdm/sysctl.conf" + + [ -f "${sysctl_conf}" ] || touch "${sysctl_conf}" + + sysctl -e -p "${sysctl_conf}" >&- +} + start_service() { + local sysctl_reload + + ubus -t 5 wait_for network.device + [ "$?" -eq 0 ] && sysctl_reload=1 + procd_open_instance usp configure_uspd procd_set_param respawn procd_close_instance + + [ "${sysctl_reload}" -eq 1 ] && apply_sysctl_configuration } reload_service() { - stop - start + apply_sysctl_configuration } service_triggers() { - procd_add_reload_trigger "uspd" + procd_add_reload_trigger "uspd" "network" }