diff options
Diffstat (limited to 'netifd/files/lib')
-rwxr-xr-x | netifd/files/lib/netifd/dhcp.script | 110 | ||||
-rwxr-xr-x | netifd/files/lib/netifd/proto/dhcp.sh | 88 | ||||
-rwxr-xr-x | netifd/files/lib/network/config.sh | 76 |
3 files changed, 0 insertions, 274 deletions
diff --git a/netifd/files/lib/netifd/dhcp.script b/netifd/files/lib/netifd/dhcp.script deleted file mode 100755 index 00604f4..0000000 --- a/netifd/files/lib/netifd/dhcp.script +++ /dev/null @@ -1,110 +0,0 @@ -#!/bin/sh -[ -z "$1" ] && echo "Error: should be run by udhcpc" && exit 1 - -. /lib/functions.sh -. /lib/netifd/netifd-proto.sh - -set_classless_routes() { - local max=128 - while [ -n "$1" -a -n "$2" -a $max -gt 0 ]; do - proto_add_ipv4_route "${1%%/*}" "${1##*/}" "$2" "$ip" - max=$(($max-1)) - shift 2 - done -} - -setup_interface () { - proto_init_update "*" 1 - proto_add_ipv4_address "$ip" "${subnet:-255.255.255.0}" - # TODO: apply $broadcast - - local ip_net - eval "$(ipcalc.sh "$ip/$mask")";ip_net="$NETWORK" - - local i - for i in $router; do - local gw_net - eval "$(ipcalc.sh "$i/$mask")";gw_net="$NETWORK" - - [ "$ip_net" != "$gw_net" ] && proto_add_ipv4_route "$i" 32 "" "$ip" - proto_add_ipv4_route 0.0.0.0 0 "$i" "$ip" - - local r - for r in $CUSTOMROUTES; do - proto_add_ipv4_route "${r%%/*}" "${r##*/}" "$i" "$ip" - done - done - - # CIDR STATIC ROUTES (rfc3442) - [ -n "$staticroutes" ] && set_classless_routes $staticroutes - [ -n "$msstaticroutes" ] && set_classless_routes $msstaticroutes - - for i in $dns; do - proto_add_dns_server "$i" - done - for i in $domain; do - proto_add_dns_search "$i" - done - - proto_add_data - [ -n "$ZONE" ] && json_add_string zone "$ZONE" - [ -n "$ntpsrv" ] && json_add_string ntpserver "$ntpsrv" - [ -n "$timesvr" ] && json_add_string timeserver "$timesvr" - [ -n "$hostname" ] && json_add_string hostname "$hostname" - [ -n "$message" ] && json_add_string message "$message" - [ -n "$timezone" ] && json_add_int timezone "$timezone" - [ -n "$lease" ] && json_add_int leasetime "$lease" - proto_close_data - - proto_send_update "$INTERFACE" - - - if [ "$IFACE6RD" != 0 -a -n "$ip6rd" ]; then - local v4mask="${ip6rd%% *}" - ip6rd="${ip6rd#* }" - local ip6rdprefixlen="${ip6rd%% *}" - ip6rd="${ip6rd#* }" - local ip6rdprefix="${ip6rd%% *}" - ip6rd="${ip6rd#* }" - local ip6rdbr="${ip6rd%% *}" - - [ -n "$ZONE" ] || ZONE=$(fw3 -q network $INTERFACE 2>/dev/null) - [ -z "$IFACE6RD" -o "$IFACE6RD" = 1 ] && IFACE6RD=${INTERFACE}_6 - - json_init - json_add_string name "$IFACE6RD" - json_add_string ifname "@$INTERFACE" - json_add_string proto "6rd" - json_add_string peeraddr "$ip6rdbr" - json_add_int ip4prefixlen "$v4mask" - json_add_string ip6prefix "$ip6rdprefix" - json_add_int ip6prefixlen "$ip6rdprefixlen" - json_add_string tunlink "$INTERFACE" - [ -n "$IFACE6RD_DELEGATE" ] && json_add_boolean delegate "$IFACE6RD_DELEGATE" - [ -n "$ZONE6RD" ] || ZONE6RD=$ZONE - [ -n "$ZONE6RD" ] && json_add_string zone "$ZONE6RD" - [ -n "$MTU6RD" ] && json_add_string mtu "$MTU6RD" - json_close_object - - ubus call network add_dynamic "$(json_dump)" - fi -} - -deconfig_interface() { - proto_init_update "*" 0 - proto_send_update "$INTERFACE" -} - -case "$1" in - deconfig) - deconfig_interface - ;; - renew|bound) - setup_interface - ;; -esac - -# user rules -[ -f /etc/udhcpc.user ] && . /etc/udhcpc.user "$@" - -exit 0 diff --git a/netifd/files/lib/netifd/proto/dhcp.sh b/netifd/files/lib/netifd/proto/dhcp.sh deleted file mode 100755 index 0d06eba..0000000 --- a/netifd/files/lib/netifd/proto/dhcp.sh +++ /dev/null @@ -1,88 +0,0 @@ -#!/bin/sh - -[ -L /sbin/udhcpc ] || exit 0 - -. /lib/functions.sh -. ../netifd-proto.sh -init_proto "$@" - -proto_dhcp_init_config() { - renew_handler=1 - - proto_config_add_string 'ipaddr:ipaddr' - proto_config_add_string 'hostname:hostname' - proto_config_add_string clientid - proto_config_add_string vendorid - proto_config_add_boolean 'broadcast:bool' - proto_config_add_boolean 'release:bool' - proto_config_add_string 'reqopts:list(string)' - proto_config_add_boolean 'defaultreqopts:bool' - proto_config_add_string iface6rd - proto_config_add_array 'sendopts:list(string)' - proto_config_add_boolean delegate - proto_config_add_string zone6rd - proto_config_add_string zone - proto_config_add_string mtu6rd - proto_config_add_string customroutes - proto_config_add_boolean classlessroute -} - -proto_dhcp_add_sendopts() { - [ -n "$1" ] && append "$3" "-x $1" -} - -proto_dhcp_setup() { - local config="$1" - local iface="$2" - - local ipaddr hostname clientid vendorid broadcast release reqopts defaultreqopts iface6rd sendopts delegate zone6rd zone mtu6rd customroutes classlessroute - json_get_vars ipaddr hostname clientid vendorid broadcast release reqopts defaultreqopts iface6rd delegate zone6rd zone mtu6rd customroutes classlessroute - - local opt dhcpopts - for opt in $reqopts; do - append dhcpopts "-O $opt" - done - - json_for_each_item proto_dhcp_add_sendopts sendopts dhcpopts - - [ -z "$hostname" ] && hostname="$(cat /proc/sys/kernel/hostname)" - [ "$hostname" = "*" ] && hostname= - - [ "$defaultreqopts" = 0 ] && defaultreqopts="-o" || defaultreqopts= - [ "$broadcast" = 1 ] && broadcast="-B" || broadcast= - [ "$release" = 1 ] && release="-R" || release= - [ -n "$clientid" ] && clientid="-x 0x3d:${clientid//:/}" || clientid="-C" - [ -n "$iface6rd" ] && proto_export "IFACE6RD=$iface6rd" - [ "$iface6rd" != 0 -a -f /lib/netifd/proto/6rd.sh ] && append dhcpopts "-O 212" - [ -n "$zone6rd" ] && proto_export "ZONE6RD=$zone6rd" - [ -n "$zone" ] && proto_export "ZONE=$zone" - [ -n "$mtu6rd" ] && proto_export "MTU6RD=$mtu6rd" - [ -n "$customroutes" ] && proto_export "CUSTOMROUTES=$customroutes" - [ "$delegate" = "0" ] && proto_export "IFACE6RD_DELEGATE=0" - # Request classless route option (see RFC 3442) by default - [ "$classlessroute" = "0" ] || append dhcpopts "-O 121" - - proto_export "INTERFACE=$config" - proto_run_command "$config" udhcpc \ - -p /var/run/udhcpc-$iface.pid \ - -s /lib/netifd/dhcp.script \ - -f -t 0 -i "$iface" \ - ${ipaddr:+-r $ipaddr} \ - ${hostname:+-x "hostname:$hostname"} \ - ${vendorid:+-V "$vendorid"} \ - $clientid $defaultreqopts $broadcast $release $dhcpopts -} - -proto_dhcp_renew() { - local interface="$1" - # SIGUSR1 forces udhcpc to renew its lease - local sigusr1="$(kill -l SIGUSR1)" - [ -n "$sigusr1" ] && proto_kill_command "$interface" $sigusr1 -} - -proto_dhcp_teardown() { - local interface="$1" - proto_kill_command "$interface" -} - -add_protocol dhcp diff --git a/netifd/files/lib/network/config.sh b/netifd/files/lib/network/config.sh deleted file mode 100755 index 0ded45e..0000000 --- a/netifd/files/lib/network/config.sh +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/sh -# Copyright (C) 2011 OpenWrt.org - -. /usr/share/libubox/jshn.sh - -find_config() { - local device="$1" - local ifdev ifl3dev ifobj - 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() { - return -} - -ubus_call() { - json_init - local _data="$(ubus -S call "$1" "$2")" - [ -z "$_data" ] && return 1 - json_load "$_data" - return 0 -} - - -fixup_interface() { - local config="$1" - local ifname type device l3dev - - config_get type "$config" type - config_get ifname "$config" ifname - [ "bridge" = "$type" ] && ifname="br-$config" - ubus_call "network.interface.$config" status || return 0 - json_get_var l3dev l3_device - [ -n "$l3dev" ] && ifname="$l3dev" - json_init - config_set "$config" ifname "$ifname" -} - -scan_interfaces() { - config_load network - 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" - - [ -n "$config" ] || return 0 - 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" -} |