Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/sivel/speedtest-cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Martz <matt@sivel.net>2018-03-23 17:37:51 +0300
committerMatt Martz <matt@sivel.net>2018-03-23 17:37:51 +0300
commit5d0c62faec1e9bc4d9433064c3c984d1f94a94b6 (patch)
treedd875d238e60573a56d58f868ddd85c2d942caad
parentced28902619cd3e5a681a20979a73b627546e418 (diff)
Handle socket failures while testing latency
-rwxr-xr-xspeedtest.py42
1 files changed, 29 insertions, 13 deletions
diff --git a/speedtest.py b/speedtest.py
index dae9ff0..9ac79cb 100755
--- a/speedtest.py
+++ b/speedtest.py
@@ -1517,21 +1517,33 @@ class Speedtest(object):
results = {}
for server in servers:
cum = []
- sock = connection_factory(
- server['host'],
- timeout=self._timeout,
- source_address=source_address
- )
-
- sock.sendall('HI\n'.encode())
- sock.recv(1024)
+ try:
+ sock = connection_factory(
+ server['host'],
+ timeout=self._timeout,
+ source_address=source_address
+ )
+ sock.sendall('HI\n'.encode())
+ sock.recv(1024)
+ except socket.error:
+ e = get_exception()
+ printer('ERROR: %r' % e, debug=True)
+ cum.append(3600 * 3)
+ continue
for _ in range(0, 3):
start = timeit.default_timer()
- sock.sendall(
- ('PING %d\n' % (int(timeit.time.time()) * 1000,)).encode()
- )
- resp = sock.recv(1024)
+ try:
+ sock.sendall(
+ ('PING %d\n' %
+ (int(timeit.time.time()) * 1000,)).encode()
+ )
+ resp = sock.recv(1024)
+ except socket.errror:
+ e = get_exception()
+ printer('ERROR: %r' % e, debug=True)
+ cum.append(3600)
+ continue
total = (timeit.default_timer() - start)
if resp.startswith('PONG '.encode()):
cum.append(total)
@@ -1560,8 +1572,12 @@ class Speedtest(object):
try:
fastest = sorted(results.keys())[0]
except IndexError:
+ if self._use_socket:
+ extra = ' Try the HTTP based tests by removing --socket.'
+ else:
+ extra = ''
raise SpeedtestBestServerFailure('Unable to connect to servers to '
- 'test latency.')
+ 'test latency.%s' % extra)
best = results[fastest]
best['latency'] = fastest