diff --git a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking index 2ce21abf5..cd999c2d4 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking +++ b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking @@ -14,10 +14,10 @@ set_route() { interface_if=$(uci -q get "network.$INTERFACE.ifname") _log "Replace default route by $interface_gw dev $interface_if" ip route replace default scope global nexthop via $interface_gw dev $interface_if && SETROUTE=true - sleep `expr $RANDOM % 10` fi } +sleep `expr $RANDOM % 10` # Get the current multipath status multipath_status="off" diff --git a/omr-tracker/Makefile b/omr-tracker/Makefile index 19385505b..55a16fa3b 100644 --- a/omr-tracker/Makefile +++ b/omr-tracker/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=omr-tracker -PKG_VERSION:=1.12 +PKG_VERSION:=1.2 PKG_RELEASE:=1 include $(INCLUDE_DIR)/package.mk @@ -18,7 +18,7 @@ define Package/$(PKG_NAME) SECTION:=net CATEGORY:=Network TITLE:=OpenMPTCProuter tracker - DEPENDS:=+bind-dig + DEPENDS:=+nping PKGARCH:=all endef diff --git a/omr-tracker/files/bin/omr-tracker b/omr-tracker/files/bin/omr-tracker index 1a0c1652b..901191f70 100755 --- a/omr-tracker/files/bin/omr-tracker +++ b/omr-tracker/files/bin/omr-tracker @@ -86,26 +86,21 @@ while true; do if [ -d "/sys/class/net/$OMR_TRACKER_DEVICE" ]; then # retrieve iface ip and gateway OMR_TRACKER_DEVICE_IP=$(ip -4 -br addr ls dev "$OMR_TRACKER_DEVICE" | awk -F'[ /]+' '{print $3}') + OMR_TRACKER_DEVICE_GATEWAY_MAC=$(arp $OMR_TRACKER_DEVICE_GATEWAY | awk '{print $4}') # execute specific tracker if [ -n "$OMR_TRACKER_DEVICE_IP" ]; then - retgw=$(ping "$OMR_TRACKER_DEVICE_GATEWAY" \ - -I "$OMR_TRACKER_DEVICE_IP" \ - -w 1 \ - -c 1 \ - -q - ) && echo "$retgw" | grep -sq "0% packet loss" && { - # setup loop variable - tries="$OMR_TRACKER_TRIES" - # loop until tries attempts have been reached - while [ "$tries" -gt 0 ]; do - ret=$(ping "$OMR_TRACKER_HOST" \ - -I "$OMR_TRACKER_DEVICE_IP" \ - -w "$OMR_TRACKER_TIMEOUT" \ - -c 1 \ - -q - ) && echo "$ret" | grep -sq "0% packet loss" && { - OMR_TRACKER_LATENCY=$(echo "$ret" | cut -d "/" -s -f4 | cut -d "." -f1) + # setup loop variable + tries="$OMR_TRACKER_TRIES" + # loop until tries attempts have been reached + while [ "$tries" -gt 0 ]; do + ret=$(arpping -c 1 \ + -r "$OMR_TRACKER_DEVICE" \ + -S "$OMR_TRACKER_DEVICE_IP" \ + -T "$OMR_TRACKER_HOST" \ + "$OMR_TRACKER_DEVICE_GATEWAY_MAC") + ) && echo "$ret" | grep -sq "Lost: 0 (0.00%)" && { + OMR_TRACKER_LATENCY=$(echo "$ret" | awk '/Avg/{print $(NF)}' | sed 's:ms::') _update_rto "$OMR_TRACKER_LATENCY" OMR_TRACKER_STATUS="OK" break diff --git a/omr-tracker/files/etc/init.d/omr-tracker b/omr-tracker/files/etc/init.d/omr-tracker index a9a1a723a..8dff6dc9e 100755 --- a/omr-tracker/files/etc/init.d/omr-tracker +++ b/omr-tracker/files/etc/init.d/omr-tracker @@ -43,6 +43,7 @@ _launch_tracker() { local ifname ip4table config_get ifname "$1" ifname config_get multipath "$1" multipath + config_get gateway "$1" gateway [ -z "$ifname" ] || [ -z "$multipath" ] || [ "$multipath" = "off" ] && return @@ -55,6 +56,7 @@ _launch_tracker() { procd_append_param env "OMR_TRACKER_INTERVAL=$interval" procd_append_param env "OMR_TRACKER_TABLE=$ip4table" procd_append_param env "OMR_TRACKER_DEVICE=$ifname" + procd_append_param env "OMR_TRACKER_DEVICE_GATEWAY=$gateway" procd_set_param respawn 0 10 0 procd_set_param stderr 1 procd_close_instance diff --git a/shadowsocks-libev/files/shadowsocks-libev.init b/shadowsocks-libev/files/shadowsocks-libev.init index 0c2596b3f..0d96e07d4 100644 --- a/shadowsocks-libev/files/shadowsocks-libev.init +++ b/shadowsocks-libev/files/shadowsocks-libev.init @@ -131,7 +131,7 @@ ss_mkjson_ss_tunnel_conf() { EOF [ "$obfs" = 0 ] && obfs=false || obfs=true if $obfs; then - obfs_options="--obfs $obfs_type" + obfs_options="obfs=$obfs_type" [ -z "$obfs_host" ] || obfs_options="$obfs_options --obfs-host $obfs_host" [ -z "$obfs_uri" ] || obfs_options="$obfs_options --obfs-uri $obfs_uri" cat <<-EOF