[tor-commits] [tor/master] Pick random ports in test_rebind.py
nickm at torproject.org
nickm at torproject.org
Wed Sep 12 13:06:41 UTC 2018
commit 4811869d7a603dfb6cc9881bb5aae9815ceab4e5
Author: rl1987 <rl1987 at sdf.lonestar.org>
Date: Sat Jul 21 12:13:58 2018 +0300
Pick random ports in test_rebind.py
---
src/test/test_rebind.py | 33 +++++++++++++++++++++++++++------
1 file changed, 27 insertions(+), 6 deletions(-)
diff --git a/src/test/test_rebind.py b/src/test/test_rebind.py
index 4a132411b..9472d5cef 100644
--- a/src/test/test_rebind.py
+++ b/src/test/test_rebind.py
@@ -5,10 +5,11 @@ import subprocess
import socket
import os
import time
+import random
def try_connecting_to_socksport():
socks_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- if socks_socket.connect_ex(('127.0.0.1', 9052)):
+ if socks_socket.connect_ex(('127.0.0.1', socks_port)):
tor_process.terminate()
print('FAIL')
sys.exit('Cannot connect to SOCKSPort')
@@ -20,14 +21,34 @@ def wait_for_log(s):
if s in l:
return
+def pick_random_port():
+ port = 0
+ random.seed()
+
+ for i in xrange(8):
+ port = random.randint(10000, 60000)
+ s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ if s.connect_ex(('127.0.0.1', port)) == 0:
+ s.close()
+ else:
+ break
+
+ return port
+
+control_port = pick_random_port()
+socks_port = pick_random_port()
+
+assert control_port != 0
+assert socks_port != 0
+
if not os.path.exists(sys.argv[1]):
sys.exit('ERROR: cannot find tor at %s' % sys.argv[1])
tor_path = sys.argv[1]
tor_process = subprocess.Popen([tor_path,
- '-ControlPort', '127.0.0.1:9053',
- '-SOCKSPort', '127.0.0.1:9052',
+ '-ControlPort', '127.0.0.1:{}'.format(control_port),
+ '-SOCKSPort', '127.0.0.1:{}'.format(socks_port),
'-FetchServerDescriptors', '0'],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
@@ -43,18 +64,18 @@ wait_for_log('Opened Control listener on')
try_connecting_to_socksport()
control_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-if control_socket.connect_ex(('127.0.0.1', 9053)):
+if control_socket.connect_ex(('127.0.0.1', control_port)):
tor_process.terminate()
print('FAIL')
sys.exit('Cannot connect to ControlPort')
control_socket.sendall('AUTHENTICATE \r\n')
-control_socket.sendall('SETCONF SOCKSPort=0.0.0.0:9052\r\n')
+control_socket.sendall('SETCONF SOCKSPort=0.0.0.0:{}\r\n'.format(socks_port))
wait_for_log('Opened Socks listener')
try_connecting_to_socksport()
-control_socket.sendall('SETCONF SOCKSPort=127.0.0.1:9052\r\n')
+control_socket.sendall('SETCONF SOCKSPort=127.0.0.1:{}\r\n'.format(socks_port))
wait_for_log('Opened Socks listener')
try_connecting_to_socksport()
More information about the tor-commits
mailing list