Skip to content

Commit 5340618

Browse files
committed
Fix #543 - Include prefix ranges in route-set expansion
1 parent c904fb9 commit 5340618

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

irrd/server/query_resolver.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ def _recursive_set_resolve(self, members: Set[str], sets_seen=None, root_source:
211211
for sub_member in sub_members:
212212
if self._current_set_root_object_class is None or self._current_set_root_object_class == 'route-set':
213213
try:
214-
IP(sub_member)
214+
IP(sub_member.split('^')[0])
215215
set_members.add(sub_member)
216216
continue
217217
except ValueError:

irrd/server/tests/test_query_resolver.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -450,7 +450,9 @@ def test_route_set_members(self, prepare_resolver):
450450
'pk': uuid.uuid4(),
451451
'rpsl_pk': 'RS-SECONDLEVEL',
452452
'parsed_data': {'as-set': 'RS-SECONDLEVEL',
453-
'members': ['AS-REFERRED', '192.0.2.0/25']},
453+
'members': [
454+
'AS-REFERRED', '192.0.2.0/25', '192.0.2.0/26^32'
455+
]},
454456
'object_text': 'text',
455457
'object_class': 'route-set',
456458
'source': 'TEST1',
@@ -472,7 +474,7 @@ def test_route_set_members(self, prepare_resolver):
472474
mock_preloader.routes_for_origins = Mock(return_value=['192.0.2.128/25'])
473475

474476
result = resolver.members_for_set('RS-FIRSTLEVEL', recursive=True)
475-
assert result == ['192.0.2.0/25', '192.0.2.128/25']
477+
assert set(result) == {'192.0.2.0/26^32', '192.0.2.0/25', '192.0.2.128/25'}
476478
assert flatten_mock_calls(mock_dq) == [
477479
['object_classes', (['as-set', 'route-set'],), {}],
478480
['rpsl_pks', ({'RS-FIRSTLEVEL'},), {}],

0 commit comments

Comments
 (0)