locust 2.31.9.dev36__py3-none-any.whl → 2.31.9.dev42__py3-none-any.whl

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/_version.py CHANGED
@@ -14,7 +14,7 @@ __version_tuple__: VERSION_TUPLE
14
14
  version_tuple: VERSION_TUPLE
15
15
 
16
16
 
17
- __version__ = "2.31.9.dev36"
17
+ __version__ = "2.31.9.dev42"
18
18
  version = __version__
19
- __version_tuple__ = (2, 31, 9, "dev36")
19
+ __version_tuple__ = (2, 31, 9, "dev42")
20
20
  version_tuple = __version_tuple__
locust/rpc/zmqrpc.py CHANGED
@@ -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 HAS_IPV6:
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))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: locust
3
- Version: 2.31.9.dev36
3
+ Version: 2.31.9.dev42
4
4
  Summary: Developer-friendly load testing framework
5
5
  Home-page: https://locust.io/
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  locust/__init__.py,sha256=Jit8eNUrwuMLqavyFvMZr69e61DILq_KB4yT4MciScw,1681
2
2
  locust/__main__.py,sha256=vBQ82334kX06ImDbFlPFgiBRiLIinwNk3z8Khs6hd74,31
3
- locust/_version.py,sha256=IT1d4pbYfb-oI4tTIij7VA8fkXJrh6ezTqgh4QC_CHk,460
3
+ locust/_version.py,sha256=r9WhAr_Pm9hFnpvzxO9xN4ygo_eaOXzt_sqtB9N4ExQ,460
4
4
  locust/argument_parser.py,sha256=Q_P7Yt0KdtOiNAgTZcEVuxX9eGzJoyibI3mPrf0vzvA,29184
5
5
  locust/clients.py,sha256=XK-xabq2_5GZKMEjebDobvEjeBTtCs8h2EelL7s68Qs,19346
6
6
  locust/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -19,7 +19,7 @@ locust/main.py,sha256=tNitGfy0oEOd9h9jzbHRSNagxK-MXQ60Ov9hjb4RosA,29378
19
19
  locust/py.typed,sha256=gkWLl8yD4mIZnNYYAIRM8g9VarLvWmTAFeUfEbxJLBw,65
20
20
  locust/rpc/__init__.py,sha256=nVGoHWFQxZjnhCDWjbgXIbmFbN9sizAjkhvSs9_642c,58
21
21
  locust/rpc/protocol.py,sha256=n-rb3GZQcAlldYDj4E4GuFGylYj_26GSS5U29meft5Y,1282
22
- locust/rpc/zmqrpc.py,sha256=AAY6w7wSFHsW34qqN28666boHFf6dTSAXPQJnAO6iUI,2707
22
+ locust/rpc/zmqrpc.py,sha256=_zl0DKazQLD2YyqxvyuskVApsDCaUnhloHvV8SkJxjw,3157
23
23
  locust/runners.py,sha256=YwUFagjLcNEXj4_64g047xWncL5m4Hd99Lg6PzYkGOQ,70366
24
24
  locust/shape.py,sha256=t-lwBS8LOjWcKXNL7j2U3zroIXJ1b0fazUwpRYQOKXw,1973
25
25
  locust/stats.py,sha256=z_s98ClnSfryvRi-VS0c7u5g87B_o4qL8nkunkPuhPI,45989
@@ -47,8 +47,8 @@ locust/webui/dist/auth.html,sha256=-iVQdm91uJlX054bB1HWgxz3TOSUZ3T8NVbwhvFDUoM,6
47
47
  locust/webui/dist/index.html,sha256=dMce1Nqjto_v1VJTv0V5Il257TDQ0hKRqsQPQhwqhio,654
48
48
  locust/webui/dist/report.html,sha256=0MceANwhR3KBquonRTkDVLfg_pHrMA7s2CHSz_X0QHc,1471010
49
49
  poetry.lock,sha256=M915pfu8Aer_KLr-xSjfsqxyrmfOulhzSLfsxYkM-ok,208302
50
- locust-2.31.9.dev36.dist-info/LICENSE,sha256=78XGpIn3fHVBfaxlPNUfjVufSN7QsdhpJMRJHv2AFpo,1095
51
- locust-2.31.9.dev36.dist-info/METADATA,sha256=MK5x9x5baluEL33pXT-nGuWW4VG246XLRFGb7sHNCUA,7725
52
- locust-2.31.9.dev36.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
53
- locust-2.31.9.dev36.dist-info/entry_points.txt,sha256=RhIxlLwU_Ae_WjimS5COUDLagdCh6IOMyLtgaQxNmlM,43
54
- locust-2.31.9.dev36.dist-info/RECORD,,
50
+ locust-2.31.9.dev42.dist-info/LICENSE,sha256=78XGpIn3fHVBfaxlPNUfjVufSN7QsdhpJMRJHv2AFpo,1095
51
+ locust-2.31.9.dev42.dist-info/METADATA,sha256=EY3drVvjt_sxL6fpr6gor601LA__NqiU8zsGZtPHizA,7725
52
+ locust-2.31.9.dev42.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
53
+ locust-2.31.9.dev42.dist-info/entry_points.txt,sha256=RhIxlLwU_Ae_WjimS5COUDLagdCh6IOMyLtgaQxNmlM,43
54
+ locust-2.31.9.dev42.dist-info/RECORD,,