nterface-ip: remove superfluous iface check in interface_ip_set_enabled()
[project/netifd.git] / scripts / netifd-proto.sh
index 95c1bb3..31df91f 100644 (file)
@@ -1,4 +1,5 @@
 NETIFD_MAIN_DIR="${NETIFD_MAIN_DIR:-/lib/netifd}"
+PROTO_DEFAULT_OPTIONS="defaultroute peerdns metric"
 
 . /usr/share/libubox/jshn.sh
 . $NETIFD_MAIN_DIR/utils.sh
@@ -15,6 +16,22 @@ proto_config_add_boolean() {
        config_add_boolean "$@"
 }
 
+proto_config_add_array() {
+       config_add_array "$@"
+}
+
+proto_config_add_defaults() {
+       proto_config_add_boolean "defaultroute"
+       proto_config_add_boolean "peerdns"
+       proto_config_add_int "metric"
+}
+
+proto_add_dynamic_defaults() {
+       [ -n "$defaultroute" ] && json_add_boolean defaultroute "$defaultroute"
+       [ -n "$peerdns" ] && json_add_boolean peerdns "$peerdns"
+       [ -n "$metric" ] && json_add_int metric "$metric"
+}
+
 _proto_do_teardown() {
        json_load "$data"
        eval "proto_$1_teardown \"$interface\" \"$ifname\""
@@ -362,8 +379,10 @@ init_proto() {
                dump)
                        add_protocol() {
                                no_device=0
+                               no_proto_task=0
                                available=0
                                renew_handler=0
+                               teardown_on_l3_link_down=0
 
                                add_default_handler "proto_$1_init_config"
 
@@ -373,9 +392,11 @@ init_proto() {
                                eval "proto_$1_init_config"
                                json_close_array
                                json_add_boolean no-device "$no_device"
+                               json_add_boolean no-proto-task "$no_proto_task"
                                json_add_boolean available "$available"
                                json_add_boolean renew-handler "$renew_handler"
                                json_add_boolean lasterror "$lasterror"
+                               json_add_boolean teardown-on-l3-link-down "$teardown_on_l3_link_down"
                                json_dump
                        }
                ;;