Skip to content

Commit cccb274

Browse files
committed
Enforce CIDR in IPv6 addresses
1 parent b1ad40a commit cccb274

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

iptc/easy.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -382,20 +382,21 @@ def encode_iptc_rule(rule_d, ipv6=False):
382382
return iptc_rule
383383

384384
def decode_iptc_rule(iptc_rule, ipv6=False):
385-
""" Return a dictionary representation of an iptc_rule """
385+
""" Return a dictionary representation of an iptc_rule
386+
Note: host IP addresses are appended their corresponding CIDR """
386387
d = {}
387388
if ipv6==False and iptc_rule.src != '0.0.0.0/0.0.0.0':
388389
_ip, _netmask = iptc_rule.src.split('/')
389390
_netmask = _netmask_v4_to_cidr(_netmask)
390391
d['src'] = '{}/{}'.format(_ip, _netmask)
391392
elif ipv6==True and iptc_rule.src != '::/0':
392-
d['src'] = iptc_rule.src.rstrip('/128')
393+
d['src'] = iptc_rule.src
393394
if ipv6==False and iptc_rule.dst != '0.0.0.0/0.0.0.0':
394395
_ip, _netmask = iptc_rule.dst.split('/')
395396
_netmask = _netmask_v4_to_cidr(_netmask)
396397
d['dst'] = '{}/{}'.format(_ip, _netmask)
397398
elif ipv6==True and iptc_rule.dst != '::/0':
398-
d['dst'] = iptc_rule.dst.rstrip('/128')
399+
d['dst'] = iptc_rule.dst
399400
if iptc_rule.protocol != 'ip':
400401
d['protocol'] = iptc_rule.protocol
401402
if iptc_rule.in_interface is not None:

0 commit comments

Comments
 (0)