From 6ee6fd2c202193b3b3899088b39f590212044953 Mon Sep 17 00:00:00 2001 From: Scott Silver Date: Sun, 4 Dec 2022 21:58:23 +0000 Subject: [PATCH 1/2] Support client ports and take bug fix. --- speedtest.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/speedtest.py b/speedtest.py index 186b529..20e60c8 100755 --- a/speedtest.py +++ b/speedtest.py @@ -590,7 +590,8 @@ def build_opener(source_address=None, timeout=10): printer('Timeout set to %d' % timeout, debug=True) if source_address: - source_address_tuple = (source_address, 0) + split_source_address = source_address.split(':') + source_address_tuple = (source_address, 0) if len(split_source_address) == 1 else (split_source_address[0], int(split_source_address[1])) printer('Binding to source address: %r' % (source_address_tuple,), debug=True) else: @@ -1129,6 +1130,7 @@ class Speedtest(object): headers = {} if gzip: headers['Accept-Encoding'] = 'gzip' + headers['Accept'] = 'text/html,application/xhtml+xml,application/xml' request = build_request('://www.speedtest.net/speedtest-config.php', headers=headers, secure=self._secure) uh, e = catch_request(request, opener=self._opener) @@ -1767,7 +1769,11 @@ def parse_args(): help='Exclude a server from selection. Can be ' 'supplied multiple times') parser.add_argument('--mini', help='URL of the Speedtest Mini server') - parser.add_argument('--source', help='Source IP address to bind to') + parser.add_argument('--source', + help='Source IP address and source port to bind to.' + 'Use the form A.B.C.D:P. You can leave the IP' + 'address or port empty and eliminate the colon' + 'for defaults') parser.add_argument('--timeout', default=10, type=PARSER_TYPE_FLOAT, help='HTTP timeout in seconds. Default 10') parser.add_argument('--secure', action='store_true', @@ -1993,7 +1999,7 @@ def shell(): if args.share and not machine_format: printer('Share results: %s' % results.share()) - + def main(): try: shell() From 4b2a207ab7c2743bc281b6d391422ffbf295f075 Mon Sep 17 00:00:00 2001 From: Scott Silver Date: Sun, 4 Dec 2022 22:16:53 +0000 Subject: [PATCH 2/2] Back out 'bug fix' and fix some spacing in help text. --- speedtest.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/speedtest.py b/speedtest.py index 20e60c8..5bb9c5f 100755 --- a/speedtest.py +++ b/speedtest.py @@ -1130,7 +1130,6 @@ class Speedtest(object): headers = {} if gzip: headers['Accept-Encoding'] = 'gzip' - headers['Accept'] = 'text/html,application/xhtml+xml,application/xml' request = build_request('://www.speedtest.net/speedtest-config.php', headers=headers, secure=self._secure) uh, e = catch_request(request, opener=self._opener) @@ -1771,8 +1770,8 @@ def parse_args(): parser.add_argument('--mini', help='URL of the Speedtest Mini server') parser.add_argument('--source', help='Source IP address and source port to bind to.' - 'Use the form A.B.C.D:P. You can leave the IP' - 'address or port empty and eliminate the colon' + 'Use the form A.B.C.D:P. You can leave the IP ' + 'address or port empty and eliminate the colon ' 'for defaults') parser.add_argument('--timeout', default=10, type=PARSER_TYPE_FLOAT, help='HTTP timeout in seconds. Default 10')