diff options
author | Karel Kočí <cynerd@email.cz> | 2020-05-29 11:19:21 +0200 |
---|---|---|
committer | Karel Kočí <cynerd@email.cz> | 2020-05-29 11:19:21 +0200 |
commit | 3d78a068cbe7ce0eccf65491aef2d235d31fae99 (patch) | |
tree | f4582f92497b985ea812fca9802feee7ecfcd8ed | |
parent | c606e009f2639c6b0518c9ad2bdf2b77c35ca6e5 (diff) | |
download | openwrt-personal-pkgs-3d78a068cbe7ce0eccf65491aef2d235d31fae99.tar.gz openwrt-personal-pkgs-3d78a068cbe7ce0eccf65491aef2d235d31fae99.tar.bz2 openwrt-personal-pkgs-3d78a068cbe7ce0eccf65491aef2d235d31fae99.zip |
netifd: drop
-rw-r--r-- | netifd/Makefile | 46 | ||||
-rw-r--r-- | netifd/files/etc/hotplug.d/iface/00-netstate | 6 | ||||
-rw-r--r-- | netifd/files/etc/hotplug.d/net/20-smp-tune | 67 | ||||
-rwxr-xr-x | netifd/files/etc/init.d/network | 149 | ||||
-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 | ||||
-rwxr-xr-x | netifd/files/sbin/devstatus | 12 | ||||
l--------- | netifd/files/sbin/ifdown | 1 | ||||
-rwxr-xr-x | netifd/files/sbin/ifstatus | 13 | ||||
-rwxr-xr-x | netifd/files/sbin/ifup | 77 | ||||
-rwxr-xr-x | netifd/files/usr/share/udhcpc/default.script | 57 | ||||
-rw-r--r-- | netifd/patches/utils-fix-check_pid_path-to-work-with-delted-file-as.patch | 69 |
13 files changed, 0 insertions, 771 deletions
diff --git a/netifd/Makefile b/netifd/Makefile deleted file mode 100644 index 0edd277..0000000 --- a/netifd/Makefile +++ /dev/null @@ -1,46 +0,0 @@ -include $(TOPDIR)/rules.mk - -PKG_NAME:=netifd -PKG_RELEASE:=2 - -PKG_SOURCE_PROTO:=git -PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git -PKG_SOURCE_DATE:=2019-08-05 -PKG_SOURCE_VERSION:=5e02f94411b06f192fb2a7d9be9abde3549153a8 -PKG_MIRROR_HASH:=96e158584c605e96aceb3ce7e8ad8faa8e774ffd67d59558b2d6c2ff49d0f1a5 -PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name> - -PKG_LICENSE:=GPL-2.0 -PKG_LICENSE_FILES:= - -PKG_BUILD_PARALLEL:=1 - -include $(INCLUDE_DIR)/package.mk -include $(INCLUDE_DIR)/cmake.mk - -define Package/netifd - SECTION:=base - CATEGORY:=Base system - DEPENDS:=+libuci +libnl-tiny +libubus +ubus +ubusd +jshn +libubox - TITLE:=OpenWrt Network Interface Configuration Daemon -endef - -TARGET_CFLAGS += \ - -I$(STAGING_DIR)/usr/include/libnl-tiny \ - -I$(STAGING_DIR)/usr/include \ - -flto - -TARGET_LDFLAGS += -flto -fuse-linker-plugin - -CMAKE_OPTIONS += \ - -DLIBNL_LIBS=-lnl-tiny \ - -DDEBUG=1 - -define Package/netifd/install - $(INSTALL_DIR) $(1)/sbin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/netifd $(1)/sbin/ - $(CP) ./files/* $(1)/ - $(CP) $(PKG_BUILD_DIR)/scripts/* $(1)/lib/netifd/ -endef - -$(eval $(call BuildPackage,netifd)) diff --git a/netifd/files/etc/hotplug.d/iface/00-netstate b/netifd/files/etc/hotplug.d/iface/00-netstate deleted file mode 100644 index 71ccb01..0000000 --- a/netifd/files/etc/hotplug.d/iface/00-netstate +++ /dev/null @@ -1,6 +0,0 @@ -[ ifup = "$ACTION" ] && { - uci_toggle_state network "$INTERFACE" up 1 - [ -n "$DEVICE" ] && { - uci_toggle_state network "$INTERFACE" ifname "$DEVICE" - } -} diff --git a/netifd/files/etc/hotplug.d/net/20-smp-tune b/netifd/files/etc/hotplug.d/net/20-smp-tune deleted file mode 100644 index ab9a904..0000000 --- a/netifd/files/etc/hotplug.d/net/20-smp-tune +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/sh -[ "$ACTION" = add ] || exit - -NPROCS="$(grep -c "^processor.*:" /proc/cpuinfo)" -[ "$NPROCS" -gt 1 ] || exit - -PROC_MASK="$(( (1 << $NPROCS) - 1 ))" - -find_irq_cpu() { - local dev="$1" - local match="$(grep -m 1 "$dev\$" /proc/interrupts)" - local cpu=0 - - [ -n "$match" ] && { - set -- $match - shift - for cur in `seq 1 $NPROCS`; do - [ "$1" -gt 0 ] && { - cpu=$(($cur - 1)) - break - } - shift - done - } - - echo "$cpu" -} - -set_hex_val() { - local file="$1" - local val="$2" - val="$(printf %x "$val")" - [ -n "$DEBUG" ] && echo "$file = $val" - echo "$val" > "$file" -} - -default_ps="$(uci get "network.@globals[0].default_ps")" -[ -n "$default_ps" -a "$default_ps" != 1 ] && exit 0 - -exec 512>/var/lock/smp_tune.lock -flock 512 || exit 1 - -for dev in /sys/class/net/*; do - [ -d "$dev" ] || continue - - # ignore virtual interfaces - [ -n "$(ls "${dev}/" | grep '^lower_')" ] && continue - [ -d "${dev}/device" ] || continue - - device="$(readlink "${dev}/device")" - device="$(basename "$device")" - irq_cpu="$(find_irq_cpu "$device")" - irq_cpu_mask="$((1 << $irq_cpu))" - - for q in ${dev}/queues/rx-*; do - set_hex_val "$q/rps_cpus" "$(($PROC_MASK & ~$irq_cpu_mask))" - done - - ntxq="$(ls -d ${dev}/queues/tx-* | wc -l)" - - idx=$(($irq_cpu + 1)) - for q in ${dev}/queues/tx-*; do - set_hex_val "$q/xps_cpus" "$((1 << $idx))" - let "idx = idx + 1" - [ "$idx" -ge "$NPROCS" ] && idx=0 - done -done diff --git a/netifd/files/etc/init.d/network b/netifd/files/etc/init.d/network deleted file mode 100755 index 2321a30..0000000 --- a/netifd/files/etc/init.d/network +++ /dev/null @@ -1,149 +0,0 @@ -#!/bin/sh /etc/rc.common - -START=20 -STOP=90 - -USE_PROCD=1 - -init_switch() { - setup_switch() { return 0; } - - include /lib/network - setup_switch -} - -start_service() { - init_switch - - procd_open_instance - procd_set_param command /sbin/netifd - procd_set_param respawn - procd_set_param watch network.interface - [ -e /proc/sys/kernel/core_pattern ] && { - procd_set_param limits core="unlimited" - } - procd_close_instance -} - -reload_service() { - local rv=0 - - init_switch - ubus call network reload || rv=1 - /sbin/wifi reload_legacy - return $rv -} - -stop_service() { - /sbin/wifi down - ifdown -a - sleep 1 -} - -service_running() { - ubus -t 30 wait_for network.interface - /sbin/wifi reload_legacy -} - -validate_atm_bridge_section() -{ - uci_validate_section network "atm-bridge" "${1}" \ - 'unit:uinteger:0' \ - 'vci:range(32, 65535):35' \ - 'vpi:range(0, 255):8' \ - 'atmdev:uinteger:0' \ - 'encaps:or("llc", "vc"):llc' \ - 'payload:or("bridged", "routed"):bridged' -} - -validate_route_section() -{ - uci_validate_section network route "${1}" \ - 'interface:string' \ - 'target:cidr4' \ - 'netmask:netmask4' \ - 'gateway:ip4addr' \ - 'metric:uinteger' \ - 'mtu:uinteger' \ - 'table:or(range(0,65535),string)' -} - -validate_route6_section() -{ - uci_validate_section network route6 "${1}" \ - 'interface:string' \ - 'target:cidr6' \ - 'gateway:ip6addr' \ - 'metric:uinteger' \ - 'mtu:uinteger' \ - 'table:or(range(0,65535),string)' -} - -validate_rule_section() -{ - uci_validate_section network rule "${1}" \ - 'in:string' \ - 'out:string' \ - 'src:cidr4' \ - 'dest:cidr4' \ - 'tos:range(0,31)' \ - 'mark:string' \ - 'invert:bool' \ - 'lookup:or(range(0,65535),string)' \ - 'goto:range(0,65535)' \ - 'action:or("prohibit", "unreachable", "blackhole", "throw")' -} - -validate_rule6_section() -{ - uci_validate_section network rule6 "${1}" \ - 'in:string' \ - 'out:string' \ - 'src:cidr6' \ - 'dest:cidr6' \ - 'tos:range(0,31)' \ - 'mark:string' \ - 'invert:bool' \ - 'lookup:or(range(0,65535),string)' \ - 'goto:range(0,65535)' \ - 'action:or("prohibit", "unreachable", "blackhole", "throw")' -} - -validate_switch_section() -{ - uci_validate_section network switch "${1}" \ - 'name:string' \ - 'enable:bool' \ - 'enable_vlan:bool' \ - 'reset:bool' \ - 'ar8xxx_mib_poll_interval:uinteger' \ - 'ar8xxx_mib_type:range(0,1)' -} - -validate_switch_vlan() -{ - uci_validate_section network switch_vlan "${1}" \ - 'device:string' \ - 'vlan:uinteger' \ - 'ports:list(ports)' -} - -service_triggers() -{ - procd_add_reload_trigger network wireless - - procd_open_validate - validate_atm_bridge_section - validate_route_section - [ -e /proc/sys/net/ipv6 ] && validate_route6_section - validate_rule_section - [ -e /proc/sys/net/ipv6 ] && validate_rule6_section - validate_switch_section - validate_switch_vlan - procd_close_validate -} - -shutdown() { - ifdown -a - sleep 1 -} 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" -} diff --git a/netifd/files/sbin/devstatus b/netifd/files/sbin/devstatus deleted file mode 100755 index 3c35b26..0000000 --- a/netifd/files/sbin/devstatus +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -. /usr/share/libubox/jshn.sh -DEVICE="$1" - -[ -n "$DEVICE" ] || { - echo "Usage: $0 <device>" - exit 1 -} - -json_init -json_add_string name "$DEVICE" -ubus call network.device status "$(json_dump)" diff --git a/netifd/files/sbin/ifdown b/netifd/files/sbin/ifdown deleted file mode 120000 index a0e5c17..0000000 --- a/netifd/files/sbin/ifdown +++ /dev/null @@ -1 +0,0 @@ -ifup
\ No newline at end of file diff --git a/netifd/files/sbin/ifstatus b/netifd/files/sbin/ifstatus deleted file mode 100755 index 8a951e6..0000000 --- a/netifd/files/sbin/ifstatus +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -INTERFACE="$1" - -[ -n "$INTERFACE" ] || { - echo "Usage: $0 <interface>" - exit 1 -} - -ubus -S list "network.interface.$INTERFACE" >/dev/null || { - echo "Interface $INTERFACE not found" - exit 1 -} -ubus call network.interface status "{ \"interface\" : \"$INTERFACE\" }" diff --git a/netifd/files/sbin/ifup b/netifd/files/sbin/ifup deleted file mode 100755 index 5515b91..0000000 --- a/netifd/files/sbin/ifup +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/sh - -ifup_all= -setup_wifi= - -if_call() { - local interface="$1" - for mode in $modes; do - ubus call network.interface $mode "{ \"interface\" : \"$interface\" }" - done -} - -case "$0" in - *ifdown) modes=down;; - *ifup) - modes="down up" - setup_wifi=1 - ;; - *) echo "Invalid command: $0";; -esac - -while :; do - case "$1" in - -a) - ifup_all=1 - shift - ;; - -w) - setup_wifi= - shift - ;; - *) - break - ;; - esac -done - -[ "$modes" = "down up" ] && ubus call network reload -if [ -n "$ifup_all" ]; then - for interface in `ubus -S list 'network.interface.*'`; do - if_call "${interface##network.interface.}" - done - [ -n "$setup_wifi" ] && /sbin/wifi up - exit -else - ubus -S list "network.interface.$1" > /dev/null || { - echo "Interface $1 not found" - exit - } - if_call "$1" -fi - -if [ -n "$setup_wifi" ] && grep -sq config /etc/config/wireless; then - . /lib/functions.sh - - find_related_radios() { - local wdev wnet - config_get wdev "$1" device - config_get wnet "$1" network - - if [ -n "$wdev" ]; then - for wnet in $wnet; do - if [ "$wnet" = "$network" ]; then - append radio_devs "$wdev" "$N" - fi - done - fi - } - - network="$1" - config_load wireless - config_foreach find_related_radios wifi-iface - - for dev in $(echo "$radio_devs" | sort -u); do - /sbin/wifi up "$dev" - done -fi diff --git a/netifd/files/usr/share/udhcpc/default.script b/netifd/files/usr/share/udhcpc/default.script deleted file mode 100755 index ac765a6..0000000 --- a/netifd/files/usr/share/udhcpc/default.script +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/sh -[ -z "$1" ] && echo "Error: should be run by udhcpc" && exit 1 - -set_classless_routes() { - local max=128 - local type - while [ -n "$1" -a -n "$2" -a $max -gt 0 ]; do - [ ${1##*/} -eq 32 ] && type=host || type=net - echo "udhcpc: adding route for $type $1 via $2" - route add -$type "$1" gw "$2" dev "$interface" - max=$(($max-1)) - shift 2 - done -} - -setup_interface() { - echo "udhcpc: ifconfig $interface $ip netmask ${subnet:-255.255.255.0} broadcast ${broadcast:-+}" - ifconfig $interface $ip netmask ${subnet:-255.255.255.0} broadcast ${broadcast:-+} - - [ -n "$router" ] && [ "$router" != "0.0.0.0" ] && [ "$router" != "255.255.255.255" ] && { - echo "udhcpc: setting default routers: $router" - - local valid_gw="" - for i in $router ; do - route add default gw $i dev $interface - valid_gw="${valid_gw:+$valid_gw|}$i" - done - - eval $(route -n | awk ' - /^0.0.0.0\W{9}('$valid_gw')\W/ {next} - /^0.0.0.0/ {print "route del -net "$1" gw "$2";"} - ') - } - - # CIDR STATIC ROUTES (rfc3442) - [ -n "$staticroutes" ] && set_classless_routes $staticroutes - [ -n "$msstaticroutes" ] && set_classless_routes $msstaticroutes -} - - -applied= -case "$1" in - deconfig) - ifconfig "$interface" 0.0.0.0 - ;; - renew) - setup_interface update - ;; - bound) - setup_interface ifup - ;; -esac - -# user rules -[ -f /etc/udhcpc.user ] && . /etc/udhcpc.user - -exit 0 diff --git a/netifd/patches/utils-fix-check_pid_path-to-work-with-delted-file-as.patch b/netifd/patches/utils-fix-check_pid_path-to-work-with-delted-file-as.patch deleted file mode 100644 index 82a6441..0000000 --- a/netifd/patches/utils-fix-check_pid_path-to-work-with-delted-file-as.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 8ce3d13d9ba56543c2d627fd429fab171b40994e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Karel=20Ko=C4=8D=C3=AD?= <cynerd@email.cz> -Date: Thu, 28 May 2020 10:43:44 +0200 -Subject: [PATCH] utils: fix check_pid_path to work with delted file as well -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -check_pid_patch is checking if process with given PID and executable -path is running. If this code fails the rest of the code can be -convinced that program is no longer running and possibly spawns new -instance that can collide with already running one. This behavior was -reproduced with hostapd. - -Symbolic link exe in process subdirectory in /proc points to original -executable. The problem is that it reads as original path plus string -' (deleted)' if file is removed. The process is still running but -original file is no longer available on files ystem. - -This behavior is triggered not only when file is removed (unlinked) but -also when file is replaced. This happens clearly on package update. In -general this happens any time all references (hard links) to file are -removed from file system. - -This is not ultimate fix as exe link points to any last reference on -file system with preference for original one. The problem is if there -are multiple references and the original one is removed. This can be -reproduced just by copying executable (hard linking) and unlinking the -original one. In such case exe link would point to copy and not to -original deleted one. - -Signed-off-by: Karel Kočí <cynerd@email.cz> ---- - utils.c | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - -diff --git a/utils.c b/utils.c -index ba26952..4f40b4b 100644 ---- a/utils.c -+++ b/utils.c -@@ -176,6 +176,8 @@ crc32_file(FILE *fp) - - bool check_pid_path(int pid, const char *exe) - { -+ const char deleted[] = " (deleted)"; -+ const int deleted_len = strlen(deleted); - int proc_exe_len; - int exe_len = strlen(exe); - -@@ -191,10 +193,13 @@ bool check_pid_path(int pid, const char *exe) - proc_exe_len = readlink(proc_exe, proc_exe_buf, exe_len); - #endif - -- if (proc_exe_len != exe_len) -+ if (proc_exe_len == exe_len) -+ return !memcmp(exe, proc_exe_buf, exe_len); -+ else if (proc_exe_len == exe_len + deleted_len) -+ return !memcmp(exe, proc_exe_buf, exe_len) && -+ !memcmp(exe + exe_len, deleted, deleted_len); -+ else - return false; -- -- return !memcmp(exe, proc_exe_buf, exe_len); - } - - static const char * const uci_validate_name[__BLOBMSG_TYPE_LAST] = { --- -2.26.2 - |