diff options
Diffstat (limited to 'files/common/etc/fsm/inetable/common.sh')
-rw-r--r-- | files/common/etc/fsm/inetable/common.sh | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/files/common/etc/fsm/inetable/common.sh b/files/common/etc/fsm/inetable/common.sh index 148c369..3625caa 100644 --- a/files/common/etc/fsm/inetable/common.sh +++ b/files/common/etc/fsm/inetable/common.sh @@ -23,3 +23,29 @@ delete network.mesh.proto delete network.mesh.netmask " | uci batch } + +# enable/disable uhttpd instance in uci config; the parameters are +# 1. instance name +# 2. addresses to listen on (white-space delimted list) +enable_httpd () { + uci set uhttpd.$1=uhttpd + for i in $2; do + uci add_list uhttpd.$1.listen_http=$i + done +} + +disable_httpd () { + uci set uhttpd.$1=disabled + uci delete uhttp.$1.listen_http &>/dev/null || true +} + +# change the interfaces the service httpd is listening on; +# automatically adds linklocal IPv6 addresses of br-mesh and br-lan +change_service_httpd_listen () { + uci delete uhttp.service.listen_http &>/dev/null || true + for i in $1 \ + [$(ifconfig br-mesh | egrep -o 'fe80[:0-9a-f]*')%br-mesh]:80 \ + [$(ifconfig br-lan | egrep -o 'fe80[:0-9a-f]*')%br-lan]:80; do + uci add_list uhttpd.service.listen_http=$i + done +} |