Merge pull request #1378 from bergware/master

Network related fixes
This commit is contained in:
tom mortensen
2023-07-14 18:55:14 -07:00
committed by GitHub
3 changed files with 13 additions and 4 deletions

View File

@@ -160,7 +160,7 @@ $validDNS = "([0-9a-z]([0-9a-z\-]{0,61}[0-9a-z])?\.)+($tld)";
$validIP4 = "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}";
$validIP6 = "(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|(:|([0-9a-fA-F]{1,4}:)+):(([0-9a-fA-F]{1,4}:)*[0-9a-fA-F]{1,4})?)";
$maskIP4 = "([0-9]|[12][0-9]|3[0-2])?";
$maskIP6 = "([0-9]|[1-9][[0-9]|1[01][0-9]|12[0-8])?";
$maskIP6 = "([0-9]|[1-9][0-9]|1[01][0-9]|12[0-8])?";
$validText = "^($validDNS|$validIP4|$validIP6)$";
$validList = "^(($validIP4/?$maskIP4|$validIP6/?$maskIP6)(, *)?)+$";

View File

@@ -33,7 +33,7 @@ default:
$route = $cell[0];
$gateway = $cell[2];
if ($route=='default') $gateway .= " via {$cell[4]}";
$metric = '1';
$metric = '0';
for ($i=5; $i<count($cell); $i++) if ($cell[$i]=='metric') {$metric = $cell[$i+1]; break;}
echo "<tr><td>IPv4</td><td>$route</td><td>$gateway</td><td>$metric</td><td style='text-align:center'><a href='#' onclick='deleteRoute(\"$gateway\",\"$route\",\"$metric\");return false'><i class='fa fa-trash-o'></i></a></td></tr>";
}

View File

@@ -404,8 +404,17 @@ shim_network(){
ip -4 route flush dev $LINK
ip -4 route add $2 src $1 dev $LINK
ip -4 route add $3 src $1 dev $LINK
DEFAULT=$(ip -4 route show dev $NETWORK default|awk '{print $3}')
[[ -n $DEFAULT ]] && ip -4 route add default via $DEFAULT dev $LINK metric 0
DEFAULT=($(ip -4 route show dev $NETWORK default|awk '{print $3,$5}'))
if [[ -n $DEFAULT ]]; then
if [[ -z ${DEFAULT[1]} ]]; then
METRIC=1
METRICS=$(ip -4 route show default|grep -Po 'metric \K\d+')
while [[ " $METRICS " =~ " $METRIC " ]]; do ((METRIC++)); done
ip -4 route del default via $DEFAULT dev $NETWORK
ip -4 route add default via $DEFAULT dev $NETWORK metric $METRIC
fi
ip -4 route add default via $DEFAULT dev $LINK metric 0
fi
}
# Remove custom networks