--- a/libpurple/connection.c Tue May 20 09:42:28 2014 +0200 +++ b/libpurple/connection.c Tue May 20 11:57:20 2014 +0200 @@ -313,6 +313,16 @@ return priv->flags; } +gboolean +purple_connection_is_disconnecting(const PurpleConnection *gc) +{ + PurpleConnectionPrivate *priv = PURPLE_CONNECTION_GET_PRIVATE(gc); + + g_return_val_if_fail(priv != NULL, TRUE); + + return priv->is_finalizing; +} + PurpleAccount * purple_connection_get_account(const PurpleConnection *gc) { @@ -795,6 +805,7 @@ } purple_http_conn_cancel_all(gc); + _purple_socket_cancel_with_connection(gc); purple_proxy_connect_cancel_with_handle(gc); connections = g_list_remove(connections, gc);