Browse Source

util.py: tighten protocol validation

patch-2
Neil Booth 6 years ago
parent
commit
12bd55fd2c
  1. 5
      electrumx/lib/util.py
  2. 1
      tests/lib/test_util.py

5
electrumx/lib/util.py

@ -256,16 +256,11 @@ def address_string(address):
return fmt.format(host, port)
VERSION_CLEANUP_REGEX = re.compile(r'([0-9.]*)')
def protocol_tuple(s):
'''Converts a protocol version number, such as "1.0" to a tuple (1, 0).
If the version number is bad, (0, ) indicating version 0 is returned.'''
try:
# clean up extra text at end of version e.g. '3.3.4CS' -> '3.3.4'
s = VERSION_CLEANUP_REGEX.match(s).group(1)
return tuple(int(part) for part in s.split('.'))
except (TypeError, ValueError, AttributeError):
return (0, )

1
tests/lib/test_util.py

@ -136,7 +136,6 @@ def test_protocol_tuple():
assert util.protocol_tuple("0.1") == (0, 1)
assert util.protocol_tuple("0.10") == (0, 10)
assert util.protocol_tuple("2.5.3") == (2, 5, 3)
assert util.protocol_tuple("11.2.33ExtraXYZ") == (11, 2, 33)
def test_version_string():
assert util.version_string(()) == "0.0"

Loading…
Cancel
Save