If a connection attempt times out (on_connection_attempt_timeout()
is
called), and enumeration has completed, and the
g_socket_connection_connect_async()
operation is going to take much
longer, the GSocketClient
effectively stalls because it doesn’t start
trying the next connection or enumeration.
Similarly, if a connection attempt times out, and enumeration has not
completed, the next enumeration is started while the
g_socket_connection_connect_async()
call is still pending. If that
call completes a short while after, the state handling logic now has a
pending enumeration call ongoing while a connection has just succeeded
(or failed). It might not be set up to handle that.
Signed-off-by: Philip Withnall pwithnall@endlessos.org