mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2025-12-10 07:44:50 +01:00
owsd: auto populate interfaces to listen on
This commit is contained in:
parent
1dccf9f8bf
commit
74c70ba559
2 changed files with 89 additions and 0 deletions
|
|
@ -39,6 +39,8 @@ define Package/owsd/install
|
||||||
$(INSTALL_BIN) ./files/owsd.config $(1)/etc/config/owsd
|
$(INSTALL_BIN) ./files/owsd.config $(1)/etc/config/owsd
|
||||||
$(INSTALL_DIR) $(1)/etc/hotplug.d/iface
|
$(INSTALL_DIR) $(1)/etc/hotplug.d/iface
|
||||||
$(INSTALL_BIN) ./files/owsd.hotplug $(1)/etc/hotplug.d/iface/55-owsd
|
$(INSTALL_BIN) ./files/owsd.hotplug $(1)/etc/hotplug.d/iface/55-owsd
|
||||||
|
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
||||||
|
$(INSTALL_BIN) ./files/owsd.uci_default $(1)/etc/uci-defaults/55-owsd-interfaces
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/owsd-testdata
|
define Package/owsd-testdata
|
||||||
|
|
|
||||||
87
owsd/files/owsd.uci_default
Normal file
87
owsd/files/owsd.uci_default
Normal file
|
|
@ -0,0 +1,87 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. /lib/functions.sh
|
||||||
|
|
||||||
|
MGMT_INTERFACES=""
|
||||||
|
OWSD_INTERFACES=""
|
||||||
|
NOT_DEFAULT=0
|
||||||
|
|
||||||
|
mgmt_interfaces() {
|
||||||
|
local interface=$1
|
||||||
|
[ "$interface" == "loopback" ] && return
|
||||||
|
[ "$interface" == "lan" ] && return
|
||||||
|
[ "$interface" == "wan" ] && return
|
||||||
|
[ "$interface" == "wan6" ] && return
|
||||||
|
|
||||||
|
local type proto
|
||||||
|
config_get type $interface type
|
||||||
|
config_get proto $interface proto "none"
|
||||||
|
[ "$type" == "bridge" -a "$proto" == "none" ] && return
|
||||||
|
|
||||||
|
local is_lan
|
||||||
|
config_get is_lan $interface is_lan
|
||||||
|
[ "$is_lan" == "1" ] && return
|
||||||
|
|
||||||
|
local ifname
|
||||||
|
config_get ifname $interface ifname
|
||||||
|
[ "${ifname:0:1}" == "@" ] && return
|
||||||
|
|
||||||
|
MGMT_INTERFACES="$MGMT_INTERFACES $interface"
|
||||||
|
}
|
||||||
|
|
||||||
|
owsd_interfaces() {
|
||||||
|
local config=$1
|
||||||
|
local interface
|
||||||
|
config_get interface $config interface
|
||||||
|
[ "$interface" == "loopback" ] && return
|
||||||
|
[ "$interface" == "lan" ] && return
|
||||||
|
[ "$interface" == "wan" ] && return
|
||||||
|
[ "$interface" == "wan6" ] && return
|
||||||
|
|
||||||
|
OWSD_INTERFACES="$OWSD_INTERFACES $interface"
|
||||||
|
|
||||||
|
NOT_DEFAULT=1
|
||||||
|
}
|
||||||
|
|
||||||
|
not_owsd() {
|
||||||
|
local interface=$1
|
||||||
|
local there=0
|
||||||
|
for owsd in $OWSD_INTERFACES; do
|
||||||
|
if [ "$interface" == "$owsd" ]; then
|
||||||
|
there=1
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
return $there
|
||||||
|
}
|
||||||
|
|
||||||
|
config_load network
|
||||||
|
config_foreach mgmt_interfaces interface
|
||||||
|
|
||||||
|
config_load owsd
|
||||||
|
config_foreach owsd_interfaces owsd-listen
|
||||||
|
|
||||||
|
if [ $NOT_DEFAULT -eq 0 ]; then
|
||||||
|
for mgmt in $MGMT_INTERFACES; do
|
||||||
|
if $(not_owsd $mgmt); then
|
||||||
|
uci -q set owsd.$mgmt=owsd-listen
|
||||||
|
uci -q set owsd.$mgmt.port=80
|
||||||
|
uci -q set owsd.$mgmt.interface="$mgmt"
|
||||||
|
uci -q set owsd.$mgmt.ipv6="on"
|
||||||
|
uci -q set owsd.$mgmt.whitelist_interface_as_origin="1"
|
||||||
|
uci -q set owsd.$mgmt.origin="*"
|
||||||
|
|
||||||
|
uci -q set owsd.$mgmt"_8080"=owsd-listen
|
||||||
|
uci -q set owsd.$mgmt"_8080".port=80
|
||||||
|
uci -q set owsd.$mgmt"_8080".interface="$mgmt"
|
||||||
|
uci -q set owsd.$mgmt"_8080".ipv6="on"
|
||||||
|
uci -q set owsd.$mgmt"_8080".whitelist_interface_as_origin="1"
|
||||||
|
uci -q set owsd.$mgmt"_8080".origin="*"
|
||||||
|
|
||||||
|
uci commit owsd
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
Loading…
Add table
Reference in a new issue