NETIFD_MAIN_DIR="${NETIFD_MAIN_DIR:-/lib/netifd}"
+PROTO_DEFAULT_OPTIONS="defaultroute peerdns metric"
. /usr/share/libubox/jshn.sh
. $NETIFD_MAIN_DIR/utils.sh
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\""
local mask="$2"
local gw="$3"
local source="$4"
+ local metric="$5"
- append PROTO_ROUTE "$target/$mask/$gw////$source"
+ append PROTO_ROUTE "$target/$mask/$gw/$metric///$source"
}
proto_add_ipv6_route() {
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"
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
}
;;