diff --git a/security/etpro-telemetry/Makefile b/security/etpro-telemetry/Makefile index e34c9eac7..3a959c084 100644 --- a/security/etpro-telemetry/Makefile +++ b/security/etpro-telemetry/Makefile @@ -1,5 +1,6 @@ PLUGIN_NAME= etpro-telemetry PLUGIN_VERSION= 1.4 +PLUGIN_REVISION= 1 PLUGIN_COMMENT= ET Pro Telemetry Edition PLUGIN_MAINTAINER= ad@opnsense.org PLUGIN_WWW= https://docs.opnsense.org/manual/etpro_telemetry.html diff --git a/security/etpro-telemetry/src/opnsense/scripts/etpro_telemetry/telemetry/__init__.py b/security/etpro-telemetry/src/opnsense/scripts/etpro_telemetry/telemetry/__init__.py index 04de204b6..7a5c7c710 100755 --- a/security/etpro-telemetry/src/opnsense/scripts/etpro_telemetry/telemetry/__init__.py +++ b/security/etpro-telemetry/src/opnsense/scripts/etpro_telemetry/telemetry/__init__.py @@ -113,24 +113,22 @@ class EventCollector: except netaddr.core.AddrFormatError: pass - with tempfile.NamedTemporaryFile() as output_stream: - subprocess.call(['ifconfig', '-a'], stdout=output_stream, stderr=open(os.devnull, 'wb')) - output_stream.seek(0) - for line in output_stream: - if line.startswith(b'\tinet'): - parts = line.split() - if len(parts) > 3: - if parts[0] == 'inet6' and parts[2] == 'prefixlen': - # IPv6 addresses - self._local_networks.append( - netaddr.IPNetwork("%s/%s" % (parts[1].split('%')[0], parts[3])) - ) - elif parts[0] == 'inet' and len(parts) > 3 and parts[2] == 'netmask': - # IPv4 addresses - mask = int(parts[3], 16) - self._local_networks.append( - netaddr.IPNetwork("%s/%s" % (netaddr.IPAddress(parts[1]), netaddr.IPAddress(mask))) - ) + sp = subprocess.run(['ifconfig', '-a'], capture_output=True, text=True) + for line in sp.stdout.split('\n'): + if line.startswith('\tinet'): + parts = line.split() + if len(parts) > 3: + if parts[0] == 'inet6' and parts[2] == 'prefixlen': + # IPv6 addresses + self._local_networks.append( + netaddr.IPNetwork("%s/%s" % (parts[1].split('%')[0], parts[3])) + ) + elif parts[0] == 'inet' and len(parts) > 3 and parts[2] == 'netmask': + # IPv4 addresses + mask = int(parts[3], 16) + self._local_networks.append( + netaddr.IPNetwork("%s/%s" % (netaddr.IPAddress(parts[1]), netaddr.IPAddress(mask))) + ) def is_local_address(self, address): """ check if provided address is local for this device