Remove unsupported Socket.IO TLS kwargs

This commit is contained in:
2025-10-18 04:57:48 -06:00
parent 783c041bf6
commit cab5581ad2

View File

@@ -839,50 +839,47 @@ class AgentHttpClient:
headers[_AGENT_CONTEXT_HEADER] = context_label headers[_AGENT_CONTEXT_HEADER] = context_label
return headers return headers
def configure_socketio(self, client: "socketio.AsyncClient") -> Dict[str, Any]: def configure_socketio(self, client: "socketio.AsyncClient") -> None:
"""Align Socket.IO TLS settings with the REST session and return connect kwargs.""" """Align the Socket.IO engine's TLS verification with the REST client."""
connect_kwargs: Dict[str, Any] = {}
try: try:
verify = getattr(self.session, "verify", True) verify = getattr(self.session, "verify", True)
ssl_value: Any engine = getattr(client, "eio", None)
context = None if engine is None:
return
if isinstance(verify, bool): context = None
ssl_value = verify if isinstance(verify, str) and os.path.isfile(verify):
elif isinstance(verify, str) and os.path.isfile(verify):
try: try:
context = ssl.create_default_context(cafile=verify) context = ssl.create_default_context(cafile=verify)
context.check_hostname = False context.check_hostname = False
ssl_value = context
except Exception: except Exception:
ssl_value = True context = None
else:
ssl_value = True
connect_kwargs["ssl"] = ssl_value if context is not None:
engine = getattr(client, "eio", None)
if engine is not None:
try: try:
setattr(engine, "ssl", ssl_value) engine.ssl_context = context
except Exception: except Exception:
pass pass
if context is not None: try:
for attr in ("ssl_context", "ssl_verify"): engine.ssl_verify = True
try: except Exception:
setattr(engine, attr, context if attr == "ssl_context" else True) pass
except Exception: return
pass
elif isinstance(ssl_value, bool): # Fall back to boolean verification flags when we either do not
for attr in ("ssl_verify", "ssl_context"): # have a pinned certificate bundle or failed to build a dedicated
try: # context for it.
setattr(engine, attr, ssl_value if attr == "ssl_verify" else None) try:
except Exception: engine.ssl_context = None
pass except Exception:
pass
try:
engine.ssl_verify = False if verify is False else True
except Exception:
pass
except Exception: except Exception:
connect_kwargs.setdefault("ssl", True) pass
return connect_kwargs
# ------------------------------------------------------------------ # ------------------------------------------------------------------
# Enrollment & token management # Enrollment & token management
@@ -2626,7 +2623,7 @@ async def connect_loop():
while True: while True:
try: try:
client.ensure_authenticated() client.ensure_authenticated()
connect_kwargs = client.configure_socketio(sio) or {} client.configure_socketio(sio)
try: try:
setattr(sio, "connection_error", None) setattr(sio, "connection_error", None)
except Exception: except Exception:
@@ -2638,7 +2635,6 @@ async def connect_loop():
url, url,
transports=['websocket'], transports=['websocket'],
headers=client.auth_headers(), headers=client.auth_headers(),
**connect_kwargs,
) )
break break
except Exception as e: except Exception as e: