X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/f85eb6d428598db0d0c0e4b9e94d8d0bcab0f512..HEAD:/package/netifd/files/lib/network/config.sh diff --git a/package/netifd/files/lib/network/config.sh b/package/netifd/files/lib/network/config.sh index 778c964e7..8fa9b1ac3 100755 --- a/package/netifd/files/lib/network/config.sh +++ b/package/netifd/files/lib/network/config.sh @@ -4,7 +4,21 @@ . /usr/share/libubox/jshn.sh find_config() { - return + local device="$1" + for ifobj in `ubus list network.interface.\*`; do + interface="${ifobj##network.interface.}" + ( + json_load "$(ifstatus $interface)" + json_get_var ifdev device + json_get_var ifl3dev l3_device + if [[ "$device" = "$ifdev" ]] || [[ "$device" = "$ifl3dev" ]]; then + echo "$interface" + exit 0 + else + exit 1 + fi + ) && return + done } unbridge() { @@ -26,6 +40,7 @@ fixup_interface() { config_get type "$config" type config_get ifname "$config" ifname + config_get device "$config" device "$ifname" [ "bridge" = "$type" ] && ifname="br-$config" config_set "$config" device "$ifname" ubus_call "network.interface.$config" status @@ -33,6 +48,7 @@ fixup_interface() { [ -n "$l3dev" ] && ifname="$l3dev" json_init config_set "$config" ifname "$ifname" + config_set "$config" device "$device" } scan_interfaces() { @@ -40,6 +56,13 @@ scan_interfaces() { config_foreach fixup_interface interface } +prepare_interface_bridge() { + local config="$1" + + [ -n "$config" ] || return 0 + ubus call network.interface."$config" prepare +} + setup_interface() { local iface="$1" local config="$2" @@ -48,3 +71,8 @@ setup_interface() { ubus call network.interface."$config" add_device "{ \"name\": \"$iface\" }" } +do_sysctl() { + [ -n "$2" ] && \ + sysctl -n -e -w "$1=$2" >/dev/null || \ + sysctl -n -e "$1" +}