From: Michael Tremer Date: Thu, 19 Nov 2020 12:40:01 +0000 (+0000) Subject: export: Remove old flattening feature X-Git-Tag: 0.9.5~47 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=90d2194a876c223f9124ce9e27bdee6a6b49ff6a;p=location%2Flibloc.git export: Remove old flattening feature The database enumerator now only returns networks that will never overlap. Signed-off-by: Michael Tremer --- diff --git a/src/python/export.py b/src/python/export.py index 6b39878..4702bcf 100644 --- a/src/python/export.py +++ b/src/python/export.py @@ -39,11 +39,8 @@ class OutputWriter(object): suffix = "networks" mode = "w" - def __init__(self, f, prefix=None, flatten=True): - self.f, self.prefix, self.flatten = f, prefix, flatten - - # The previously written network - self._last_network = None + def __init__(self, f, prefix=None): + self.f, self.prefix = f, prefix # Immediately write the header self._write_header() @@ -60,18 +57,6 @@ class OutputWriter(object): def __repr__(self): return "<%s f=%s>" % (self.__class__.__name__, self.f) - def _flatten(self, network): - """ - Checks if the given network needs to be written to file, - or if it is a subnet of the previously written network. - """ - if self._last_network and network.is_subnet_of(self._last_network): - return True - - # Remember this network for the next call - self._last_network = network - return False - def _write_header(self): """ The header of the file @@ -84,15 +69,8 @@ class OutputWriter(object): """ pass - def _write_network(self, network): - self.f.write("%s\n" % network) - def write(self, network): - if self.flatten and self._flatten(network): - log.debug("Skipping writing network %s (last one was %s)" % (network, self._last_network)) - return - - return self._write_network(network) + self.f.write("%s\n" % network) def finish(self): """ @@ -113,7 +91,7 @@ class IpsetOutputWriter(OutputWriter): def _write_header(self): self.f.write("create %s hash:net family inet hashsize 1024 maxelem 65536\n" % self.prefix) - def _write_network(self, network): + def write(self, network): self.f.write("add %s %s\n" % (self.prefix, network)) @@ -129,7 +107,7 @@ class NftablesOutputWriter(OutputWriter): def _write_footer(self): self.f.write("}\n") - def _write_network(self, network): + def write(self, network): self.f.write(" %s,\n" % network) @@ -141,7 +119,7 @@ class XTGeoIPOutputWriter(OutputWriter): suffix = "iv" mode = "wb" - def _write_network(self, network): + def write(self, network): for address in (network._first_address, network._last_address): self.f.write(address)