kernel: update linux 3.2 to 3.2.12
[openwrt.git] / package / netifd / files / lib / network / config.sh
index 778c964..8b91f96 100755 (executable)
@@ -4,7 +4,20 @@
 . /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
+                       if [[ "$device" = "$ifdev" ]]; then
+                               echo "$interface"
+                               exit 0
+                       else
+                               exit 1
+                       fi
+               ) && return
+       done
 }
 
 unbridge() {
@@ -26,6 +39,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 +47,7 @@ fixup_interface() {
        [ -n "$l3dev" ] && ifname="$l3dev"
        json_init
        config_set "$config" ifname "$ifname"
+       config_set "$config" device "$device"
 }
 
 scan_interfaces() {
@@ -40,6 +55,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 +70,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"
+}
This page took 0.021333 seconds and 4 git commands to generate.