You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Sep 16, 2024. It is now read-only.
System information:
sysname='GPy'
nodename='GPy'
release='1.18.2.r7'
version='v1.8.6-849-df9f237 on 2019-05-14'
machine='GPy with ESP32'
When configuring a socket to use a timeout, if the socket has been wrapped with the ussl.wrap_socket method, the timeout is not honored.
Given a socket sock which has been successfully connected to a host, trying to call sock.read should return None if the timeout is reached and there is nothing to read in the socket:
import usocket
sock = usocket.socket()
sock.settimeout(5)
sock.connect((host, port))
t = sock.read(1)
# after timeout, t is None
print(t is None)
But when the socket is wrapped with ussl, the timeout setting is ignored and the read blocks forever:
import usocket
import ussl
sock = usocket.socket()
sock = ussl.wrap_socket(sock)
sock.settimeout(5)
sock.connect((host, port))
# this hangs indefinitely
t = sock.read(1)
This also happens at least for the readline method.