mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-02-01 00:45:52 +00:00
Ensure the fd will be valid by the time we listen
This commit is contained in:
parent
62836b6858
commit
be6e458770
@ -322,11 +322,17 @@ def foolscapEndpointForPortNumber(portnum):
|
||||
from socket import socket, AF_INET
|
||||
from twisted.internet.endpoints import AdoptedStreamServerEndpoint
|
||||
s = socket()
|
||||
s.setblocking(False)
|
||||
s.bind(('', 0))
|
||||
portnum = s.getsockname()[1]
|
||||
s.listen(3)
|
||||
return (portnum, AdoptedStreamServerEndpoint(reactor, s.fileno(), AF_INET))
|
||||
try:
|
||||
s.setblocking(False)
|
||||
s.bind(('', 0))
|
||||
portnum = s.getsockname()[1]
|
||||
s.listen(3)
|
||||
return (
|
||||
portnum,
|
||||
AdoptedStreamServerEndpoint(reactor, os.dup(s.fileno()), AF_INET),
|
||||
)
|
||||
finally:
|
||||
s.close()
|
||||
else:
|
||||
# Get a random port number and fall through.
|
||||
portnum = iputil.allocate_tcp_port()
|
||||
|
Loading…
x
Reference in New Issue
Block a user