mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
Loop omr-6in4
This commit is contained in:
parent
9c6a56f699
commit
d90e16fda0
3 changed files with 51 additions and 25 deletions
|
@ -8,7 +8,7 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=omr-6in4
|
PKG_NAME:=omr-6in4
|
||||||
PKG_VERSION:=0.3
|
PKG_VERSION:=0.4
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
27
omr-6in4/files/bin/omr-6in4
Executable file
27
omr-6in4/files/bin/omr-6in4
Executable file
|
@ -0,0 +1,27 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# Copyright (C) 2018 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
if [ "$(uci -q get glorytun.vpn.enable)" = "1" ]; then
|
||||||
|
iface=$(uci -q get glorytun.vpn.dev)
|
||||||
|
elif [ "$(uci -q get mlvpn.general.enable)" = "1" ]; then
|
||||||
|
iface=$(uci -q get mlvpn.general.interface_name)
|
||||||
|
elif [ "$(uci -q get openvpn.omr.enabled)" = "1" ]; then
|
||||||
|
iface=$(uci -q get openvpn.omr.dev)
|
||||||
|
fi
|
||||||
|
addr=$(ubus call network.interface.omrvpn status | jsonfilter -q -e '@["ipv4-address"][0].address' | tr -d "\n")
|
||||||
|
[ -z "$addr" ] && [ -n "$iface" ] && addr=$(ip -4 addr show dev $iface | grep inet | awk '{print $2}' | cut -d/ -f1 | tr -d "\n")
|
||||||
|
peer=$(ubus call network.interface.omrvpn status | jsonfilter -q -e '@.route[0].nexthop' | tr -d "\n")
|
||||||
|
[ -z "$peer" ] && [ -n "$iface" ] && peer=$(ip -4 r list dev $iface | grep kernel | awk '/proto kernel/ {print $1}' | grep -v / | tr -d "\n")
|
||||||
|
[ -z "$addr" ] && exit 0
|
||||||
|
[ -z "$peer" ] && exit 0
|
||||||
|
if [ "$addr" != "$(uci -q get network.omr6in4.ipaddr)" ] || [ "$peer" != "$(uci -q get network.omr6in4.peeraddr)" ]; then
|
||||||
|
uci -q batch <<-EOF
|
||||||
|
set network.omr6in4.ipaddr=$addr
|
||||||
|
set network.omr6in4.peeraddr=$peer
|
||||||
|
EOF
|
||||||
|
uci -q commit network
|
||||||
|
ifup omr6in4
|
||||||
|
fi
|
||||||
|
sleep 10
|
||||||
|
done
|
|
@ -1,33 +1,32 @@
|
||||||
#!/bin/sh /etc/rc.common
|
#!/bin/sh /etc/rc.common
|
||||||
# Copyright (C) 2018 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
|
# Copyright (C) 2018 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
|
||||||
|
# shellcheck disable=SC2039
|
||||||
|
# vim: set noexpandtab tabstop=4 shiftwidth=4 softtabstop=4 :
|
||||||
|
|
||||||
START=99
|
# shellcheck disable=SC2034
|
||||||
USE_PROCD=1
|
{
|
||||||
|
START=99
|
||||||
|
STOP=10
|
||||||
|
USE_PROCD=1
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
start_service() {
|
||||||
|
[ "$(sysctl -n net.ipv6.conf.all.disable_ipv6 | tr -d '\n')" = "1" ] && return
|
||||||
|
procd_open_instance
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
procd_set_param command /bin/omr-6in4
|
||||||
|
procd_set_param limits nofile="51200 51200"
|
||||||
|
procd_set_param respawn 0 10 0
|
||||||
|
procd_set_param stderr 1
|
||||||
|
procd_close_instance
|
||||||
|
}
|
||||||
|
|
||||||
service_triggers() {
|
service_triggers() {
|
||||||
procd_add_interface_trigger "omrvpn"
|
procd_add_interface_trigger "omrvpn"
|
||||||
}
|
}
|
||||||
|
|
||||||
reload_service() {
|
reload_service() {
|
||||||
if [ "$(uci -q get glorytun.vpn.enable)" = "1" ]; then
|
stop
|
||||||
iface=$(uci -q get glorytun.vpn.dev)
|
start
|
||||||
elif [ "$(uci -q get mlvpn.general.enable)" = "1" ]; then
|
}
|
||||||
iface=$(uci -q get mlvpn.general.interface_name)
|
|
||||||
elif [ "$(uci -q get openvpn.omr.enabled)" = "1" ]; then
|
|
||||||
iface=$(uci -q get openvpn.omr.dev)
|
|
||||||
fi
|
|
||||||
addr=$(ubus call network.interface.omrvpn status | jsonfilter -q -e '@["ipv4-address"][0].address' | tr -d "\n")
|
|
||||||
[ -z "$addr" ] && [ -n "$iface" ] && addr=$(ip -4 addr show dev $iface | grep inet | awk '{print $2}' | cut -d/ -f1 | tr -d "\n")
|
|
||||||
peer=$(ubus call network.interface.omrvpn status | jsonfilter -q -e '@.route[0].nexthop' | tr -d "\n")
|
|
||||||
[ -z "$peer" ] && [ -n "$iface" ] && peer=$(ip -4 r list dev $iface | grep kernel | awk '/proto kernel/ {print $1}' | grep -v / | tr -d "\n")
|
|
||||||
[ -z "$addr" ] && exit 0
|
|
||||||
[ -z "$peer" ] && exit 0
|
|
||||||
if [ "$addr" != "$(uci -q get network.omr6in4.ipaddr)" ] || [ "$peer" != "$(uci -q get network.omr6in4.peeraddr)" ]; then
|
|
||||||
uci -q batch <<-EOF
|
|
||||||
set network.omr6in4.ipaddr=$addr
|
|
||||||
set network.omr6in4.peeraddr=$peer
|
|
||||||
EOF
|
|
||||||
uci -q commit network
|
|
||||||
ifup omr6in4
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue