Getting colder with our second freeze... it's 3.31.91 release day and string freeze, upload a tarball and lock those strings 🏂

Commit cb320cb5 authored by Philip Withnall's avatar Philip Withnall

gsocketclient: Handle cancellation between CONNECTING and CONNECTED

If a g_socket_client_connect_async() operation is cancelled between the
CONNECTING and CONNECTED events (i.e. while in the
g_socket_connection_connect_async() call), the code in
g_socket_client_connected_callback() would previously unconditionally
loop round and try the next socket address from the address enumerator
(by calling enumerator_next_async()). This would correctly handle the
cancellation and return from the overall task — but not before emitting
a spurious RESOLVING event.

Avoid emitting the spurious RESOLVING event by explicitly handling
cancellation at the beginning of g_socket_client_connected_callback().

https://bugzilla.gnome.org/show_bug.cgi?id=735179
parent 607d5a78
......@@ -1492,6 +1492,12 @@ g_socket_client_connected_callback (GObject *source,
GProxy *proxy;
const gchar *protocol;
if (g_task_return_error_if_cancelled (data->task))
{
g_object_unref (data->task);
return;
}
if (!g_socket_connection_connect_finish (G_SOCKET_CONNECTION (source),
result, &error))
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment