Reviewed-by: Adolf Belka adolf.belka@ipfire.org
On 15/08/2023 01:14, Peter Müller wrote:
This upstream release incorporates the patch added for resolving #13023.
Signed-off-by: Peter Müller peter.mueller@ipfire.org
lfs/squid-asnbl | 5 +- ...les_to_make_compatible_with_python_3.patch | 100 ------------------ 2 files changed, 2 insertions(+), 103 deletions(-) delete mode 100644 src/patches/squid/squid-asnbl-0.2.4_initialise_global_variables_to_make_compatible_with_python_3.patch
diff --git a/lfs/squid-asnbl b/lfs/squid-asnbl index b003d605b..32c109e15 100644 --- a/lfs/squid-asnbl +++ b/lfs/squid-asnbl @@ -25,7 +25,7 @@
include Config
-VER = 0.2.4 +VER = 0.2.5
THISAPP = squid-asnbl-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -45,7 +45,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 98bdf0ecff1fc4d4ac0e0eb43d37682acf76900df783bf31b172134ebe31a857594e0a98ee06347da40d97b86a6ac0ce9a63ea7a80a1d73948e338f72d1c3af2 +$(DL_FILE)_BLAKE2 = 7206b9fe6c4a0509c9ce0301a5d3553274d005daae2050f23e26056d356c328719821d58d94ed2eac7942a6cafb0ca8de2cb619ce28a0f514b6eef413350e249
install : $(TARGET)
@@ -75,7 +75,6 @@ $(subst %,%_BLAKE2,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zvxf $(DIR_DL)/$(DL_FILE)
cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/squid/squid-asnbl-0.2.4_initialise_global_variables_to_make_compatible_with_python_3.patch
# Install ASNBL helper script cd $(DIR_APP) && install -o root -g root -m 0755 asnbl-helper.py /usr/bin/asnbl-helper.py
diff --git a/src/patches/squid/squid-asnbl-0.2.4_initialise_global_variables_to_make_compatible_with_python_3.patch b/src/patches/squid/squid-asnbl-0.2.4_initialise_global_variables_to_make_compatible_with_python_3.patch deleted file mode 100644 index e540d4e76..000000000 --- a/src/patches/squid/squid-asnbl-0.2.4_initialise_global_variables_to_make_compatible_with_python_3.patch +++ /dev/null @@ -1,100 +0,0 @@ ---- squid-asnbl-0.2.4/asnbl-helper_orig.py -+++ squid-asnbl-0.2.4/asnbl-helper.py -@@ -172,17 +172,19 @@
return parsedasns
--def resolve_asn(ipaddr: str, asndb): -- """ Function call: resolve_asn(IP address to be resolved, -- ASN database instance object) -- This function looks up the Autonomous System for the given IP address. It expects -- an IPFire location database object to be passed as a second parameter, hence relying -- on another function to set that up. """ -+def resolve_asn(ipaddr: str): -+ """ Function call: resolve_asn(IP address to be resolved) -+ This function looks up the Autonomous System for the given IP address. """ -+ -+ # Fix for #13023 -+ # Initialize the result variable before it's first use, otherwise python3 -+ # will sometimes detect a 'mismatch' using global and local variables -+ lookup_result = None
# libloc cannot handle ipaddress objects here, so casting into a string is necessary
# for good measure, to avoid exceptions here...
try:
-- result = asndb.lookup(str(ipaddr)) -+ lookup_result = ASNDB.lookup(str(ipaddr))
except BlockingIOError:
# XXX: Prevent likely libloc bug from causing this helper to crash
# (see upstream bug https://bugzilla.ipfire.org/show_bug.cgi?id=13023)
-@@ -190,21 +192,25 @@
# In case nothing was returned above, satisfy result expectation to this function...
try:
-- if not result.asn: -+ if not lookup_result.asn:
return 0
except AttributeError:
return 0
-- return result.asn
-- --def asndb_response_tests(testdata: str, asndb): -- """ Function call: asndb_response_tests(response rest data, -- ASN database instance object) -+ return lookup_result.asn -+ -+ -+def asndb_response_tests(testdata: str): -+ """ Function call: asndb_response_tests(response rest data)
This function asserts the given ASN database to return expected ASNs for
given IP addresses in order to be considered operational. It returns
True if this test succeeds, and False otherwise. """
-+ -+ # Fix for #13023 -+ # Initialize the result variable before it's first use, otherwise python3 -+ # will sometimes detect a 'mismatch' using global and local variables -+ lookup_result_test = None
tresult = True
-@@ -216,13 +222,13 @@
for stestdata in ptdata:
LOGIT.debug("Running response test for '%s' against ASNDB '%s' ...",
-- stestdata, asndb)
-- returndata = resolve_asn(stestdata[0], asndb)
-- if returndata != int(stestdata[1]): -+ stestdata, ASNDB) -+ -+ lookup_result_test = resolve_asn(stestdata[0]) -+ -+ if lookup_result_test != int(stestdata[1]):
LOGIT.error("Response test failed for ASNDB '%s' (tuple: %s), aborting",
-- asndb, stestdata) -+ ASNDB, stestdata)
tresult = False
break
-@@ -428,7 +434,7 @@
- ASNDB = set_up_location_database(config["GENERAL"]["ASNDB_PATH"])
- LOGIT.debug("Running ASN database response tests...")
--if asndb_response_tests(config["GENERAL"]["TESTDATA"], ASNDB): -+if asndb_response_tests(config["GENERAL"]["TESTDATA"]):
LOGIT.debug("ASN database operational - excellent. Waiting for input...")
- else:
LOGIT.error("ASN database response tests failed, aborting")
-@@ -490,7 +496,7 @@
ASNS = []
for singleip in IPS:
# Enumerate ASN for this IP address...
-- resolvedasn = resolve_asn(singleip, ASNDB) -+ resolvedasn = resolve_asn(singleip)
# In case protection against destinations without public AS announcements for their
# IP addresses is desired, the query will be denied in case ASN = 0 appears in an