[Asterisk-code-review] utils socket: range of random ports searched only once (testsuite[15])
Jenkins2
asteriskteam at digium.com
Fri Apr 27 07:41:50 CDT 2018
Jenkins2 has submitted this change and it was merged. ( https://gerrit.asterisk.org/8865 )
Change subject: utils_socket: range of random ports searched only once
......................................................................
utils_socket: range of random ports searched only once
If a range (greater than 1) of random ports was asked for, and if a port in
range was not available an exception was thrown stating the port in range
was not free.
This patch makes it so the exception is caught and a new random port range is
tried again (up to "attempts" tries) before quitting.
Change-Id: I96affa9df38acf569f5d3c0965ac7b78d865455d
---
M lib/python/asterisk/utils_socket.py
1 file changed, 16 insertions(+), 5 deletions(-)
Approvals:
Corey Farrell: Looks good to me, but someone else must approve
George Joseph: Looks good to me, approved
Jenkins2: Approved for Submit
diff --git a/lib/python/asterisk/utils_socket.py b/lib/python/asterisk/utils_socket.py
index 2a11c97..1f62f13 100644
--- a/lib/python/asterisk/utils_socket.py
+++ b/lib/python/asterisk/utils_socket.py
@@ -195,6 +195,9 @@
if not isinstance(ports, list):
ports = list(ports)
+ LOGGER.debug("Checking the following {0}/{1} ports for availability: "
+ "{2}".format(socket_type(socktype), socket_family(family), ports))
+
res = []
for port in ports:
for attempt in range(attempts):
@@ -238,11 +241,19 @@
# Need a random port first
port = self.get_avail(host, 0, socktype, family)
- ports = self.get_avail(
- host, range(port[0] + step, port[0] + num, step),
- socktype, family, attempts)
- if ports:
- return port + ports
+
+ if abs(num) <= 1:
+ return port
+
+ try:
+ ports = self.get_avail(
+ host, range(port[0] + step, port[0] + num, step),
+ socktype, family, attempts)
+ except PortError:
+ # At least one port not free, try again
+ continue
+
+ return port + ports
raise PortError(socktype, family, attempts=attempts)
--
To view, visit https://gerrit.asterisk.org/8865
To unsubscribe, visit https://gerrit.asterisk.org/settings
Gerrit-Project: testsuite
Gerrit-Branch: 15
Gerrit-MessageType: merged
Gerrit-Change-Id: I96affa9df38acf569f5d3c0965ac7b78d865455d
Gerrit-Change-Number: 8865
Gerrit-PatchSet: 3
Gerrit-Owner: Kevin Harwell <kharwell at digium.com>
Gerrit-Reviewer: Benjamin Keith Ford <bford at digium.com>
Gerrit-Reviewer: Corey Farrell <git at cfware.com>
Gerrit-Reviewer: George Joseph <gjoseph at digium.com>
Gerrit-Reviewer: Jenkins2
Gerrit-Reviewer: Joshua Colp <jcolp at digium.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20180427/c03ec9ca/attachment.html>
More information about the asterisk-code-review
mailing list