343241
From 12fd98893d190df9581d04155fa9207d2adb5573 Mon Sep 17 00:00:00 2001
343241
From: Eric Garver <eric@garver.life>
343241
Date: Wed, 15 Sep 2021 14:12:37 -0400
343241
Subject: [PATCH 40/50] fix(nftables): rich: source address with netmask
343241
343241
Fixes: rhbz1917766
343241
(cherry picked from commit 3809fef17dc779052a3f050041fe90e3599f35be)
343241
(cherry picked from commit 32d5eb8d94a2b39a4dda10fec351ad6fbab7d486)
343241
---
343241
 src/firewall/core/nftables.py | 5 +++--
343241
 1 file changed, 3 insertions(+), 2 deletions(-)
343241
343241
diff --git a/src/firewall/core/nftables.py b/src/firewall/core/nftables.py
343241
index 29a9a2492032..059cd8869dbb 100644
343241
--- a/src/firewall/core/nftables.py
343241
+++ b/src/firewall/core/nftables.py
343241
@@ -22,6 +22,7 @@ from __future__ import absolute_import
343241
 
343241
 import copy
343241
 import json
343241
+import ipaddress
343241
 
343241
 from firewall.core.logger import log
343241
 from firewall.functions import check_mac, getPortRange, normalizeIP6, \
343241
@@ -1213,8 +1214,8 @@ class nftables(object):
343241
                 family = "ip"
343241
             elif check_address("ipv4", address):
343241
                 family = "ip"
343241
-                addr_len = address.split("/")
343241
-                address = {"prefix": {"addr": addr_len[0], "len": int(addr_len[1])}}
343241
+                normalized_address = ipaddress.IPv4Network(address, strict=False)
343241
+                address = {"prefix": {"addr": normalized_address.network_address.compressed, "len": normalized_address.prefixlen}}
343241
             elif check_single_address("ipv6", address):
343241
                 family = "ip6"
343241
                 address = normalizeIP6(address)
343241
-- 
343241
2.27.0
343241