Fix a regression in uuid added in bpo-32107. (#4677)

uuid.get_node() always must return a stable result.
Also added a test for non-reproducibility of _random_getnode().
Original patch by Xavier de Gaye.
This commit is contained in:
Serhiy Storchaka 2017-12-04 11:51:55 +02:00 committed by GitHub
parent 85d5c18c9d
commit e69fbb6a56
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 2 deletions

View file

@ -674,14 +674,14 @@ def getnode():
getters = [_unix_getnode, _ifconfig_getnode, _ip_getnode,
_arp_getnode, _lanscan_getnode, _netstat_getnode]
for getter in getters:
for getter in getters + [_random_getnode]:
try:
_node = getter()
except:
continue
if _node is not None:
return _node
return _random_getnode()
assert False, '_random_getnode() returned None'
_last_timestamp = None