[PATCH v2 1/2] uhttpd: Reload config after uhttpd-mod-ubus was added

Hauke Mehrtens hauke at hauke-m.de
Mon Jan 10 15:03:30 PST 2022

On 1/6/22 22:52, Rafał Miłecki wrote:
> On 6.01.2022 22:50, Rafał Miłecki wrote:
>> On 20.03.2021 20:57, Hauke Mehrtens wrote:
>>> Without this change the config is only committed, but the uhttpd daemon
>>> is not reloaded. This reload is needed to apply the config. Without the
>>> reload of uhttpd, the ubus server is not available over http and returns
>>> a Error 404.
>>> This caused problems when installing luci on the snapshots and
>>> accessing it without reloading uhttpd.
>>> Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
>> this looks wrong to me. Calling init.d scripts from uci-defaults script
>> may result (and it results here) in starting uhttpd too early. We need
>> all uci-defaults script to do their updates before we call any init.d.
>> I hit this incorrect behaviour as I have my own uci-defaults script
>> switching uhttpd from port 80 to another one.
>> If you need some changes applied after *installing* a package perhaps
>> postinst should be used?
>> On another note it doesn't make sense to ship package with wrong config
>> and then always update it with uci-defaults script. Those scripts should
>> be used only for dealing with outdated configs.
>> If we always set ubus_prefix to "/ubus" then make it also a default
>> value in the uhttpd.config.
> Another comment: we don't want any "uci commit"s in uci-defaults
> scripts. That is executed by /etc/init.d/boot after all scripts get
> called.

Hi Rafal,

Thanks for pointing this out, I think you are right.

We should remove the "uci commit" and "/etc/init.d/uhttpd reload" from 
the init script. As far as I understand this script should be used to 
migrate old configurations when you upgrade OpenWrt.
We should also set ubus_prefix in 
package/network/services/uhttpd/files/uhttpd.config directly, then no 
migration is needed for a fresh install.


More information about the openwrt-devel mailing list