System / Routes / Status: remove entries directly connected to an interface, rework last commit for https://github.com/opnsense/core/issues/4721

This commit is contained in:
Ad Schellevis 2021-03-07 20:29:43 +01:00
parent 5126fe1658
commit 0d94d0aefb

View File

@ -32,6 +32,8 @@ import subprocess
import sys
import ujson
import argparse
import ipaddress
if __name__ == '__main__':
# parse input arguments
@ -48,11 +50,13 @@ if __name__ == '__main__':
# route entry found, try to delete
print ("found")
inet = '-6' if parts[0].find(':') > 0 else '-4'
if len(parts[1].replace(':', '')) == 12 and parts[1].count(':') == 5:
# gateway is a mac address, remove entry directly assigned to an interface
subprocess.run(['/sbin/route', inet, 'delete', parts[0]], capture_output=True)
else:
try:
ipaddress.ip_address(parts[1])
# gateway is an ip address (v4/v6)
subprocess.run(['/sbin/route', inet, 'delete', parts[0], parts[1]], capture_output=True)
except ValueError:
subprocess.run(['/sbin/route', inet, 'delete', parts[0]], capture_output=True)
sys.exit(0)
# not found