static void g_socket_client_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { GSocketClient *client = G_SOCKET_CLIENT (object); switch (prop_id) { case PROP_FAMILY: g_socket_client_set_family (client, g_value_get_enum (value)); break; case PROP_TYPE: g_socket_client_set_socket_type (client, g_value_get_enum (value)); break; case PROP_PROTOCOL: g_socket_client_set_protocol (client, g_value_get_enum (value)); break; case PROP_LOCAL_ADDRESS: g_socket_client_set_local_address (client, g_value_get_object (value)); break; case PROP_TIMEOUT: g_socket_client_set_timeout (client, g_value_get_uint (value)); break; case PROP_ENABLE_PROXY: g_socket_client_set_enable_proxy (client, g_value_get_boolean (value)); break; case PROP_TLS: g_socket_client_set_tls (client, g_value_get_boolean (value)); break; case PROP_TLS_VALIDATION_FLAGS: g_socket_client_set_tls_validation_flags (client, g_value_get_flags (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } }
static void mega_http_client_init(MegaHttpClient *http_client) { MegaHttpClientPrivate* priv = http_client->priv = G_TYPE_INSTANCE_GET_PRIVATE(http_client, MEGA_TYPE_HTTP_CLIENT, MegaHttpClientPrivate); priv->client = g_socket_client_new(); g_socket_client_set_timeout(priv->client, 60); g_socket_client_set_family(priv->client, G_SOCKET_FAMILY_IPV4); priv->request_headers = g_hash_table_new_full(stri_hash, stri_equal, g_free, g_free); priv->response_headers = g_hash_table_new_full(stri_hash, stri_equal, g_free, g_free); priv->regex_url = g_regex_new("^([a-z]+)://([a-z0-9.-]+(?::([0-9]+))?)(/.+)?$", G_REGEX_CASELESS, 0, NULL); priv->regex_status = g_regex_new("^HTTP/([0-9]+\\.[0-9]+) ([0-9]+) (.+)$", 0, 0, NULL); // set default headers mega_http_client_set_header(http_client, "Referer", "https://mega.co.nz/"); mega_http_client_set_header(http_client, "User-Agent", "Megatools (" VERSION ")"); mega_http_client_set_header(http_client, "Connection", "keep-alive"); }