mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
netifd
This commit is contained in:
parent
71e19b5cc3
commit
a6208cf86f
3 changed files with 39 additions and 4 deletions
|
@ -5,9 +5,9 @@ PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git
|
PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git
|
||||||
PKG_SOURCE_DATE:=2023-11-14
|
PKG_SOURCE_DATE:=2023-11-10
|
||||||
PKG_SOURCE_VERSION:=8587c074f1eb2064c42adb0a6aa5073f695ab89d
|
PKG_SOURCE_VERSION:=35facc8306f590a7330789ab6d5785c0d43073ef
|
||||||
PKG_MIRROR_HASH:=f5ceb771badd7a23cceb53537299580d4b483e2b3ec5de09b9c3c54692893dd9
|
PKG_MIRROR_HASH:=4f73591ae1873e18df235349e478f2196ca0d3123c313a04149dc9d5e2bfb403
|
||||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||||
|
|
||||||
PKG_LICENSE:=GPL-2.0
|
PKG_LICENSE:=GPL-2.0
|
||||||
|
|
|
@ -13,11 +13,12 @@ set_classless_routes() {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
setup_interface () {
|
setup_interface() {
|
||||||
proto_init_update "*" 1
|
proto_init_update "*" 1
|
||||||
proto_add_ipv4_address "$ip" "${subnet:-255.255.255.0}"
|
proto_add_ipv4_address "$ip" "${subnet:-255.255.255.0}"
|
||||||
# TODO: apply $broadcast
|
# TODO: apply $broadcast
|
||||||
|
|
||||||
|
local ip_net
|
||||||
local ip_net IP PREFIX NETWORK NETMASK BROADCAST
|
local ip_net IP PREFIX NETWORK NETMASK BROADCAST
|
||||||
ipcalc "$ip/$mask" && ip_net="$NETWORK"
|
ipcalc "$ip/$mask" && ip_net="$NETWORK"
|
||||||
|
|
||||||
|
@ -27,6 +28,7 @@ setup_interface () {
|
||||||
ipcalc "$i/$mask" && gw_net="$NETWORK"
|
ipcalc "$i/$mask" && gw_net="$NETWORK"
|
||||||
|
|
||||||
[ "$ip_net" != "$gw_net" ] && proto_add_ipv4_route "$i" 32 "" "$ip"
|
[ "$ip_net" != "$gw_net" ] && proto_add_ipv4_route "$i" 32 "" "$ip"
|
||||||
|
#[ "$DEFAULTROUTE" = 0 ] || proto_add_ipv4_route 0.0.0.0 0 "$i" "$ip"
|
||||||
proto_add_ipv4_route 0.0.0.0 0 "$i" "$ip"
|
proto_add_ipv4_route 0.0.0.0 0 "$i" "$ip"
|
||||||
|
|
||||||
local r
|
local r
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
ifup_all=
|
ifup_all=
|
||||||
|
setup_wifi=
|
||||||
|
|
||||||
if_call() {
|
if_call() {
|
||||||
local interface="$1"
|
local interface="$1"
|
||||||
|
@ -13,6 +14,7 @@ case "$0" in
|
||||||
*ifdown) modes=down;;
|
*ifdown) modes=down;;
|
||||||
*ifup)
|
*ifup)
|
||||||
modes="down up"
|
modes="down up"
|
||||||
|
setup_wifi=1
|
||||||
;;
|
;;
|
||||||
*) echo "Invalid command: $0";;
|
*) echo "Invalid command: $0";;
|
||||||
esac
|
esac
|
||||||
|
@ -23,6 +25,10 @@ while :; do
|
||||||
ifup_all=1
|
ifup_all=1
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
-w)
|
||||||
|
setup_wifi=
|
||||||
|
shift
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
|
@ -34,6 +40,7 @@ if [ -n "$ifup_all" ]; then
|
||||||
for interface in $(ubus -S list 'network.interface.*'); do
|
for interface in $(ubus -S list 'network.interface.*'); do
|
||||||
if_call "${interface##network.interface.}"
|
if_call "${interface##network.interface.}"
|
||||||
done
|
done
|
||||||
|
[ -n "$setup_wifi" ] && /sbin/wifi up
|
||||||
exit
|
exit
|
||||||
else
|
else
|
||||||
ubus -S list "network.interface.$1" > /dev/null || {
|
ubus -S list "network.interface.$1" > /dev/null || {
|
||||||
|
@ -42,3 +49,29 @@ else
|
||||||
}
|
}
|
||||||
if_call "$1"
|
if_call "$1"
|
||||||
fi
|
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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue