static void on_connect_to_uri (GObject *source, GAsyncResult *result, gpointer user_data) { WebSocketClient *self = WEB_SOCKET_CLIENT (user_data); WebSocketConnection *conn = WEB_SOCKET_CONNECTION (user_data); GSocketConnection *connection; GError *error = NULL; connection = g_socket_client_connect_to_uri_finish (G_SOCKET_CLIENT (source), result, &error); if (error == NULL) { _web_socket_connection_take_io_stream (conn, G_IO_STREAM (connection)); request_handshake (self, conn); } else if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { g_error_free (error); } else { _web_socket_connection_error_and_close (conn, error, TRUE); } g_object_unref (self); }
static void _socket_connect_cb (GObject *object, GAsyncResult *result, gpointer user_data) { GError *error = NULL; GMainLoop *loop = user_data; GSocketClient *client = G_SOCKET_CLIENT (object); GSocketConnection *connection; connection = g_socket_client_connect_to_uri_finish (client, result, &error); if (connection) { GSocketAddress *proxy_addr; proxy_addr = g_socket_connection_get_remote_address (connection, NULL); print_proxy_address (proxy_addr); } else { print_and_free_error (error); } g_main_loop_quit (loop); }
static void on_connected (GObject *source_object, GAsyncResult *result, gpointer user_data) { GSocketConnection *conn; GError *error = NULL; conn = g_socket_client_connect_to_uri_finish (G_SOCKET_CLIENT (source_object), result, &error); g_assert_no_error (error); g_object_unref (conn); g_main_loop_quit (user_data); }
static void on_connected_cancelled (GObject *source_object, GAsyncResult *result, gpointer user_data) { GSocketConnection *conn; GError *error = NULL; conn = g_socket_client_connect_to_uri_finish (G_SOCKET_CLIENT (source_object), result, &error); g_assert_error (error, G_IO_ERROR, G_IO_ERROR_CANCELLED); g_assert_null (conn); g_error_free (error); g_main_loop_quit (user_data); }