From 3d392fd38f107de11e48830af14c45b60b216bdc Mon Sep 17 00:00:00 2001 From: DonnieBLT <128622481+DonnieBLT@users.noreply.github.com> Date: Tue, 15 Apr 2025 11:46:28 -0400 Subject: [PATCH 1/3] Fix ValueError in IP address conversion --- blt/middleware/ip_restrict.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/blt/middleware/ip_restrict.py b/blt/middleware/ip_restrict.py index ed1026f5d9..89b037b250 100644 --- a/blt/middleware/ip_restrict.py +++ b/blt/middleware/ip_restrict.py @@ -1,4 +1,5 @@ import ipaddress +import logging from django.core.cache import cache from django.db import models, transaction @@ -8,6 +9,7 @@ MAX_COUNT = 2147483647 +logger = logging.getLogger(__name__) class IPRestrictMiddleware: """ @@ -45,8 +47,8 @@ def blocked_ip_network(self): try: network = ipaddress.ip_network(range_str, strict=False) blocked_ip_network.append(network) - except ValueError: - # Log the error or handle it as needed, but skip invalid networks + except ValueError as e: + logger.error(f"Invalid IP network {range_str}: {str(e)}") continue return blocked_ip_network @@ -70,7 +72,12 @@ def ip_in_range(self, ip, blocked_ip_network): """ Check if the IP address is within any of the blocked IP networks. """ - ip_obj = ipaddress.ip_address(ip) + try: + ip_obj = ipaddress.ip_address(ip) + except ValueError as e: + logger.error(f"Invalid IP address {ip}: {str(e)}") + return False + return any(ip_obj in ip_range for ip_range in blocked_ip_network) def is_user_agent_blocked(self, user_agent, blocked_agents): From 4d1faee14dde9fcfbcee66175bf8ebe9545b618b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 15 Apr 2025 15:49:05 +0000 Subject: [PATCH 2/3] Apply pre-commit fixes --- blt/middleware/ip_restrict.py | 1 + 1 file changed, 1 insertion(+) diff --git a/blt/middleware/ip_restrict.py b/blt/middleware/ip_restrict.py index 89b037b250..13e7d7a39f 100644 --- a/blt/middleware/ip_restrict.py +++ b/blt/middleware/ip_restrict.py @@ -11,6 +11,7 @@ logger = logging.getLogger(__name__) + class IPRestrictMiddleware: """ Middleware to restrict access based on client IP addresses and user agents. From c05ff780243c62418ec3cc9bbbeec92c3e7905a2 Mon Sep 17 00:00:00 2001 From: DonnieBLT <128622481+DonnieBLT@users.noreply.github.com> Date: Tue, 15 Apr 2025 15:42:45 -0400 Subject: [PATCH 3/3] Update ip_restrict.py --- blt/middleware/ip_restrict.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blt/middleware/ip_restrict.py b/blt/middleware/ip_restrict.py index 13e7d7a39f..ac631d9b85 100644 --- a/blt/middleware/ip_restrict.py +++ b/blt/middleware/ip_restrict.py @@ -14,7 +14,7 @@ class IPRestrictMiddleware: """ - Middleware to restrict access based on client IP addresses and user agents. + Middleware to restrict access based on client IP addresses and user agent. """ def __init__(self, get_response):