mirror of
https://github.com/GNS3/gns3-server
synced 2024-12-03 13:48:11 +00:00
Use SO_REUSEADDR before calling bind() where missing. Fixes #1289.
This commit is contained in:
parent
5c4f6dd3dc
commit
dd9c18b9f8
@ -514,7 +514,7 @@ class BaseNode:
|
|||||||
try:
|
try:
|
||||||
yield from self._ubridge_hypervisor.send(command)
|
yield from self._ubridge_hypervisor.send(command)
|
||||||
except UbridgeError as e:
|
except UbridgeError as e:
|
||||||
raise UbridgeError("{}: {}".format(e, self._ubridge_hypervisor.read_stdout()))
|
raise UbridgeError("Error while sending command '{}': {}: {}".format(command, e, self._ubridge_hypervisor.read_stdout()))
|
||||||
|
|
||||||
@locked_coroutine
|
@locked_coroutine
|
||||||
def _start_ubridge(self):
|
def _start_ubridge(self):
|
||||||
|
@ -894,6 +894,7 @@ class QemuVM(BaseNode):
|
|||||||
af, socktype, proto, _, sa = res
|
af, socktype, proto, _, sa = res
|
||||||
# let the OS find an unused port for the Qemu monitor
|
# let the OS find an unused port for the Qemu monitor
|
||||||
with socket.socket(af, socktype, proto) as sock:
|
with socket.socket(af, socktype, proto) as sock:
|
||||||
|
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||||
sock.bind(sa)
|
sock.bind(sa)
|
||||||
self._monitor = sock.getsockname()[1]
|
self._monitor = sock.getsockname()[1]
|
||||||
except OSError as e:
|
except OSError as e:
|
||||||
|
@ -191,6 +191,7 @@ class VirtualBoxGNS3VM(BaseGNS3VM):
|
|||||||
try:
|
try:
|
||||||
# get a random port on localhost
|
# get a random port on localhost
|
||||||
with socket.socket() as s:
|
with socket.socket() as s:
|
||||||
|
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||||
s.bind((ip_address, 0))
|
s.bind((ip_address, 0))
|
||||||
api_port = s.getsockname()[1]
|
api_port = s.getsockname()[1]
|
||||||
except OSError as e:
|
except OSError as e:
|
||||||
|
@ -62,6 +62,7 @@ class Hypervisor(UBridgeHypervisor):
|
|||||||
af, socktype, proto, _, sa = res
|
af, socktype, proto, _, sa = res
|
||||||
# let the OS find an unused port for the uBridge hypervisor
|
# let the OS find an unused port for the uBridge hypervisor
|
||||||
with socket.socket(af, socktype, proto) as sock:
|
with socket.socket(af, socktype, proto) as sock:
|
||||||
|
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||||
sock.bind(sa)
|
sock.bind(sa)
|
||||||
port = sock.getsockname()[1]
|
port = sock.getsockname()[1]
|
||||||
break
|
break
|
||||||
|
Loading…
Reference in New Issue
Block a user