From 862448ada105576f0a8efcb404133bdd5139529c Mon Sep 17 00:00:00 2001 From: grossmj Date: Fri, 11 Apr 2014 17:02:43 -0600 Subject: [PATCH] Fixes bug with finding a free port. --- gns3server/modules/dynamips/dynamips_hypervisor.py | 7 ++++--- gns3server/modules/iou/iou_device.py | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/gns3server/modules/dynamips/dynamips_hypervisor.py b/gns3server/modules/dynamips/dynamips_hypervisor.py index 45e6449b..1ddc4c02 100644 --- a/gns3server/modules/dynamips/dynamips_hypervisor.py +++ b/gns3server/modules/dynamips/dynamips_hypervisor.py @@ -351,8 +351,6 @@ class DynamipsHypervisor(object): socket_type = socket.SOCK_STREAM for port in range(start_port, end_port): - if port + 1 == end_port: - raise DynamipsError("Could not find a free port between {0} and {1}".format(start_port, end_port)) try: if ":" in host: # IPv6 address support @@ -364,7 +362,10 @@ class DynamipsHypervisor(object): return port except OSError as e: if e.errno == errno.EADDRINUSE: # socket already in use - continue + if port + 1 == end_port: + raise DynamipsError("Could not find a free port between {0} and {1}".format(start_port, end_port)) + else: + continue else: raise DynamipsError("Could not find an unused port: {}".format(e)) diff --git a/gns3server/modules/iou/iou_device.py b/gns3server/modules/iou/iou_device.py index 5d0940fb..6a53039d 100644 --- a/gns3server/modules/iou/iou_device.py +++ b/gns3server/modules/iou/iou_device.py @@ -793,8 +793,6 @@ class IOUDevice(object): socket_type = socket.SOCK_STREAM for port in range(start_port, end_port): - if port + 1 == end_port: - raise IOUError("Could not find a free port between {0} and {1}".format(start_port, end_port)) try: if ":" in host: # IPv6 address support @@ -806,6 +804,9 @@ class IOUDevice(object): return port except OSError as e: if e.errno == errno.EADDRINUSE: # socket already in use - continue + if port + 1 == end_port: + raise IOUError("Could not find a free port between {0} and {1}".format(start_port, end_port)) + else: + continue else: raise IOUError("Could not find an unused port: {}".format(e))