locust 2.31.9.dev35__tar.gz → 2.31.9.dev42__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/PKG-INFO +1 -1
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/_version.py +2 -2
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/main.py +1 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/rpc/zmqrpc.py +16 -5
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/pyproject.toml +1 -1
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/LICENSE +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/README.md +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/__init__.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/__main__.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/argument_parser.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/clients.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/contrib/__init__.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/contrib/fasthttp.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/contrib/mongodb.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/contrib/postgres.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/debug.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/dispatch.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/env.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/event.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/exception.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/html.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/input_events.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/log.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/py.typed +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/rpc/__init__.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/rpc/protocol.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/runners.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/shape.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/stats.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/user/__init__.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/user/inspectuser.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/user/sequential_taskset.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/user/task.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/user/users.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/user/wait_time.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/util/__init__.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/util/cache.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/util/date.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/util/deprecation.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/util/directory.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/util/exception_handler.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/util/load_locustfile.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/util/rounding.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/util/timespan.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/util/url.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/web.py +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/webui/dist/assets/favicon-dark.png +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/webui/dist/assets/favicon-light.png +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/webui/dist/assets/index-C35vpr6y.js +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/webui/dist/auth.html +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/webui/dist/index.html +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/locust/webui/dist/report.html +0 -0
- {locust-2.31.9.dev35 → locust-2.31.9.dev42}/poetry.lock +0 -0
@@ -14,7 +14,7 @@ __version_tuple__: VERSION_TUPLE
|
|
14
14
|
version_tuple: VERSION_TUPLE
|
15
15
|
|
16
16
|
|
17
|
-
__version__ = "2.31.9.
|
17
|
+
__version__ = "2.31.9.dev42"
|
18
18
|
version = __version__
|
19
|
-
__version_tuple__ = (2, 31, 9, "
|
19
|
+
__version_tuple__ = (2, 31, 9, "dev42")
|
20
20
|
version_tuple = __version_tuple__
|
@@ -1,22 +1,24 @@
|
|
1
1
|
from locust.exception import RPCError, RPCReceiveError, RPCSendError
|
2
2
|
from locust.util.exception_handler import retry
|
3
3
|
|
4
|
+
import socket as csocket
|
5
|
+
from socket import gaierror, has_dualstack_ipv6
|
6
|
+
|
4
7
|
import msgpack.exceptions as msgerr
|
5
8
|
import zmq.error as zmqerr
|
6
9
|
import zmq.green as zmq
|
7
|
-
from urllib3.util.connection import HAS_IPV6
|
8
10
|
|
9
11
|
from .protocol import Message
|
10
12
|
|
11
13
|
|
12
14
|
class BaseSocket:
|
13
|
-
def __init__(self, sock_type):
|
15
|
+
def __init__(self, sock_type, ipv4_only):
|
14
16
|
context = zmq.Context()
|
15
17
|
self.socket = context.socket(sock_type)
|
16
18
|
|
17
19
|
self.socket.setsockopt(zmq.TCP_KEEPALIVE, 1)
|
18
20
|
self.socket.setsockopt(zmq.TCP_KEEPALIVE_IDLE, 30)
|
19
|
-
if
|
21
|
+
if has_dualstack_ipv6() and not ipv4_only:
|
20
22
|
self.socket.setsockopt(zmq.IPV6, 1)
|
21
23
|
|
22
24
|
@retry()
|
@@ -60,10 +62,19 @@ class BaseSocket:
|
|
60
62
|
def close(self, linger=None):
|
61
63
|
self.socket.close(linger=linger)
|
62
64
|
|
65
|
+
def ipv4_only(self, host, port) -> bool:
|
66
|
+
try:
|
67
|
+
if str(csocket.getaddrinfo(host, port, proto=csocket.IPPROTO_TCP)).find("Family.AF_INET6") == -1:
|
68
|
+
return True
|
69
|
+
except gaierror as e:
|
70
|
+
print(f"Error resolving address: {e}")
|
71
|
+
return False
|
72
|
+
return False
|
73
|
+
|
63
74
|
|
64
75
|
class Server(BaseSocket):
|
65
76
|
def __init__(self, host, port):
|
66
|
-
BaseSocket.__init__(self, zmq.ROUTER)
|
77
|
+
BaseSocket.__init__(self, zmq.ROUTER, self.ipv4_only(host, port))
|
67
78
|
if port == 0:
|
68
79
|
self.port = self.socket.bind_to_random_port(f"tcp://{host}")
|
69
80
|
else:
|
@@ -76,6 +87,6 @@ class Server(BaseSocket):
|
|
76
87
|
|
77
88
|
class Client(BaseSocket):
|
78
89
|
def __init__(self, host, port, identity):
|
79
|
-
BaseSocket.__init__(self, zmq.DEALER)
|
90
|
+
BaseSocket.__init__(self, zmq.DEALER, self.ipv4_only(host, port))
|
80
91
|
self.socket.setsockopt(zmq.IDENTITY, identity.encode())
|
81
92
|
self.socket.connect("tcp://%s:%i" % (host, port))
|
@@ -5,7 +5,7 @@ build-backend = "poetry_dynamic_versioning.backend"
|
|
5
5
|
[tool.poetry]
|
6
6
|
name = "locust"
|
7
7
|
description = "Developer-friendly load testing framework"
|
8
|
-
version = "2.31.9.
|
8
|
+
version = "2.31.9.dev42"
|
9
9
|
license = "MIT"
|
10
10
|
readme = "README.md"
|
11
11
|
authors = ["Jonatan Heyman", "Lars Holmberg"]
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|