From b1083a4c4151c01e8d76e40939576d343fa37a71 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Mon, 13 Jun 2022 14:13:15 +0200 Subject: [PATCH] http utils: Make a generic FlatpakHttpSession instead of SoupSession Its still just a SoupSession, but now the implementation is more centralized and can be something else down the line. --- app/flatpak-builtins-install.c | 6 +- app/flatpak-builtins-remote-add.c | 6 +- common/flatpak-dir.c | 50 ++++++------- common/flatpak-oci-registry-private.h | 26 +++---- common/flatpak-oci-registry.c | 71 ++++++++++--------- common/flatpak-transaction.c | 7 +- common/flatpak-utils-http-private.h | 15 ++-- common/flatpak-utils-http.c | 35 ++++++--- oci-authenticator/flatpak-oci-authenticator.c | 4 +- tests/httpcache.c | 2 +- 10 files changed, 123 insertions(+), 99 deletions(-) diff --git a/app/flatpak-builtins-install.c b/app/flatpak-builtins-install.c index 970bf3ea..afa2bb72 100644 --- a/app/flatpak-builtins-install.c +++ b/app/flatpak-builtins-install.c @@ -221,9 +221,9 @@ install_from (FlatpakDir *dir, if (g_str_has_prefix (filename, "http:") || g_str_has_prefix (filename, "https:")) { - g_autoptr(SoupSession) soup_session = NULL; - soup_session = flatpak_create_soup_session (PACKAGE_STRING); - file_data = flatpak_load_uri (soup_session, filename, 0, NULL, NULL, NULL, NULL, cancellable, error); + g_autoptr(FlatpakHttpSession) http_session = NULL; + http_session = flatpak_create_http_session (PACKAGE_STRING); + file_data = flatpak_load_uri (http_session, filename, 0, NULL, NULL, NULL, NULL, cancellable, error); if (file_data == NULL) { g_prefix_error (error, "Can't load uri %s: ", filename); diff --git a/app/flatpak-builtins-remote-add.c b/app/flatpak-builtins-remote-add.c index e273ca9d..1cf6a909 100644 --- a/app/flatpak-builtins-remote-add.c +++ b/app/flatpak-builtins-remote-add.c @@ -244,10 +244,10 @@ load_options (const char *remote_name, { const char *options_data; gsize options_size; - g_autoptr(SoupSession) soup_session = NULL; + g_autoptr(FlatpakHttpSession) http_session = NULL; - soup_session = flatpak_create_soup_session (PACKAGE_STRING); - bytes = flatpak_load_uri (soup_session, filename, 0, NULL, NULL, NULL, NULL, NULL, &local_error); + http_session = flatpak_create_http_session (PACKAGE_STRING); + bytes = flatpak_load_uri (http_session, filename, 0, NULL, NULL, NULL, NULL, NULL, &local_error); if (bytes == NULL) { diff --git a/common/flatpak-dir.c b/common/flatpak-dir.c index 1845df1d..0d475de2 100644 --- a/common/flatpak-dir.c +++ b/common/flatpak-dir.c @@ -165,7 +165,7 @@ static gboolean flatpak_dir_lookup_remote_filter (FlatpakDir *self, GRegex **deny_regex, GError **error); -static void ensure_soup_session (FlatpakDir *self); +static void ensure_http_session (FlatpakDir *self); static void flatpak_dir_log (FlatpakDir *self, const char *file, @@ -241,7 +241,7 @@ struct FlatpakDir GRegex *masked; GRegex *pinned; - SoupSession *soup_session; + FlatpakHttpSession *http_session; }; G_LOCK_DEFINE_STATIC (config_cache); @@ -1160,14 +1160,14 @@ flatpak_remote_state_fetch_commit_object (FlatpakRemoteState *self, if (!ostree_repo_remote_get_url (dir->repo, self->remote_name, &base_url, error)) return NULL; - ensure_soup_session (dir); + ensure_http_session (dir); part1 = g_strndup (checksum, 2); part2 = g_strdup_printf ("%s.commit", checksum + 2); object_url = g_build_filename (base_url, "objects", part1, part2, NULL); - bytes = flatpak_load_uri (dir->soup_session, object_url, 0, token, + bytes = flatpak_load_uri (dir->http_session, object_url, 0, token, NULL, NULL, NULL, cancellable, error); if (bytes == NULL) @@ -2586,7 +2586,7 @@ flatpak_dir_finalize (GObject *object) if (self->system_helper_bus != (gpointer) 1) g_clear_object (&self->system_helper_bus); - g_clear_object (&self->soup_session); + g_clear_pointer (&self->http_session, flatpak_http_session_free); g_clear_pointer (&self->summary_cache, g_hash_table_unref); g_clear_pointer (&self->remote_filters, g_hash_table_unref); g_clear_pointer (&self->masked, g_regex_unref); @@ -4937,7 +4937,7 @@ flatpak_dir_update_oci_index (FlatpakDir *self, if (index_cache == NULL) return NULL; - ensure_soup_session (self); + ensure_http_session (self); if (!ostree_repo_remote_get_url (self->repo, remote, @@ -4945,7 +4945,7 @@ flatpak_dir_update_oci_index (FlatpakDir *self, error)) return NULL; - if (!flatpak_oci_index_ensure_cached (self->soup_session, oci_uri, + if (!flatpak_oci_index_ensure_cached (self->http_session, oci_uri, index_cache, index_uri_out, cancellable, &local_error)) { @@ -5043,9 +5043,9 @@ flatpak_dir_update_appstream_oci (FlatpakDir *self, FALSE, &icons_dfd, error)) return FALSE; - ensure_soup_session (self); + ensure_http_session (self); - appstream = flatpak_oci_index_make_appstream (self->soup_session, + appstream = flatpak_oci_index_make_appstream (self->http_session, index_cache, index_uri, arch, @@ -5476,15 +5476,15 @@ repo_pull (OstreeRepo *self, } static void -ensure_soup_session (FlatpakDir *self) +ensure_http_session (FlatpakDir *self) { - if (g_once_init_enter (&self->soup_session)) + if (g_once_init_enter (&self->http_session)) { - SoupSession *soup_session; + FlatpakHttpSession *http_session; - soup_session = flatpak_create_soup_session (PACKAGE_STRING); + http_session = flatpak_create_http_session (PACKAGE_STRING); - g_once_init_leave (&self->soup_session, soup_session); + g_once_init_leave (&self->http_session, http_session); } } @@ -5687,8 +5687,8 @@ flatpak_dir_pull_extra_data (FlatpakDir *self, } else { - ensure_soup_session (self); - bytes = flatpak_load_uri (self->soup_session, extra_data_uri, 0, NULL, + ensure_http_session (self); + bytes = flatpak_load_uri (self->http_session, extra_data_uri, 0, NULL, extra_data_progress_report, progress, NULL, cancellable, error); } @@ -12070,7 +12070,7 @@ remote_verify_signature (OstreeRepo *repo, } static GBytes * -load_uri_with_fallback (SoupSession *soup_session, +load_uri_with_fallback (FlatpakHttpSession *http_session, const char *uri, const char *uri2, FlatpakHTTPFlags flags, @@ -12081,7 +12081,7 @@ load_uri_with_fallback (SoupSession *soup_session, g_autoptr(GError) local_error = NULL; GBytes *res; - res = flatpak_load_uri (soup_session, uri, flags, token, + res = flatpak_load_uri (http_session, uri, flags, token, NULL, NULL, NULL, cancellable, &local_error); if (res) @@ -12093,7 +12093,7 @@ load_uri_with_fallback (SoupSession *soup_session, return NULL; } - return flatpak_load_uri (soup_session, uri2, flags, token, + return flatpak_load_uri (http_session, uri2, flags, token, NULL, NULL, NULL, cancellable, error); } @@ -12117,7 +12117,7 @@ flatpak_dir_remote_fetch_summary_index (FlatpakDir *self, g_autoptr(GBytes) index_sig = NULL; gboolean gpg_verify_summary; - ensure_soup_session (self); + ensure_http_session (self); if (!ostree_repo_remote_get_url (self->repo, name_or_uri, &url, error)) return FALSE; @@ -12169,7 +12169,7 @@ flatpak_dir_remote_fetch_summary_index (FlatpakDir *self, g_debug ("Fetching summary index file for remote ‘%s’", name_or_uri); - dl_index = flatpak_load_uri (self->soup_session, index_url, 0, NULL, + dl_index = flatpak_load_uri (self->http_session, index_url, 0, NULL, NULL, NULL, NULL, cancellable, error); if (dl_index == NULL) @@ -12198,7 +12198,7 @@ flatpak_dir_remote_fetch_summary_index (FlatpakDir *self, g_autoptr(GError) dl_sig_error = NULL; g_autoptr (GBytes) dl_index_sig = NULL; - dl_index_sig = load_uri_with_fallback (self->soup_session, index_sig_url, index_sig_url2, 0, NULL, + dl_index_sig = load_uri_with_fallback (self->http_session, index_sig_url, index_sig_url2, 0, NULL, cancellable, &dl_sig_error); if (dl_index_sig == NULL) { @@ -12267,7 +12267,7 @@ flatpak_dir_remote_fetch_indexed_summary (FlatpakDir *self, g_autofree char *checksum = NULL; g_autofree char *cache_name = NULL; - ensure_soup_session (self); + ensure_http_session (self); if (!ostree_repo_remote_get_url (self->repo, name_or_uri, &url, error)) return FALSE; @@ -12340,7 +12340,7 @@ flatpak_dir_remote_fetch_indexed_summary (FlatpakDir *self, g_debug ("Fetching indexed summary delta %s for remote ‘%s’", delta_filename, name_or_uri); - g_autoptr(GBytes) delta = flatpak_load_uri (self->soup_session, delta_url, 0, NULL, + g_autoptr(GBytes) delta = flatpak_load_uri (self->http_session, delta_url, 0, NULL, NULL, NULL, NULL, cancellable, &delta_error); if (delta == NULL) @@ -12367,7 +12367,7 @@ flatpak_dir_remote_fetch_indexed_summary (FlatpakDir *self, g_autofree char *filename = g_strconcat (checksum, ".gz", NULL); g_debug ("Fetching indexed summary file %s for remote ‘%s’", filename, name_or_uri); g_autofree char *subsummary_url = g_build_filename (url, "summaries", filename, NULL); - summary_z = flatpak_load_uri (self->soup_session, subsummary_url, 0, NULL, + summary_z = flatpak_load_uri (self->http_session, subsummary_url, 0, NULL, NULL, NULL, NULL, cancellable, error); if (summary_z == NULL) diff --git a/common/flatpak-oci-registry-private.h b/common/flatpak-oci-registry-private.h index 66d69f08..83ec8467 100644 --- a/common/flatpak-oci-registry-private.h +++ b/common/flatpak-oci-registry-private.h @@ -160,24 +160,24 @@ FlatpakOciSignature *flatpak_oci_verify_signature (OstreeRepo *repo, GBytes *signature, GError **error); -gboolean flatpak_oci_index_ensure_cached (SoupSession *soup_session, - const char *uri, - GFile *index, - char **index_uri_out, - GCancellable *cancellable, - GError **error); +gboolean flatpak_oci_index_ensure_cached (FlatpakHttpSession *http_session, + const char *uri, + GFile *index, + char **index_uri_out, + GCancellable *cancellable, + GError **error); GVariant *flatpak_oci_index_make_summary (GFile *index, const char *index_uri, GCancellable *cancellable, GError **error); -GBytes *flatpak_oci_index_make_appstream (SoupSession *soup_session, - GFile *index, - const char *index_uri, - const char *arch, - int icons_dfd, - GCancellable *cancellable, - GError **error); +GBytes *flatpak_oci_index_make_appstream (FlatpakHttpSession *http_session, + GFile *index, + const char *index_uri, + const char *arch, + int icons_dfd, + GCancellable *cancellable, + GError **error); #endif /* __FLATPAK_OCI_REGISTRY_H__ */ diff --git a/common/flatpak-oci-registry.c b/common/flatpak-oci-registry.c index 5fb71fa5..2a2c39b1 100644 --- a/common/flatpak-oci-registry.c +++ b/common/flatpak-oci-registry.c @@ -68,6 +68,7 @@ struct FlatpakOciRegistry int dfd; /* Remote repos */ + FlatpakHttpSession *http_session; SoupSession *soup_session; GUri *base_uri; }; @@ -112,6 +113,7 @@ flatpak_oci_registry_finalize (GObject *object) close (self->dfd); g_clear_object (&self->soup_session); + g_clear_pointer (&self->http_session, flatpak_http_session_free); g_clear_pointer (&self->base_uri, g_uri_unref); g_free (self->uri); g_free (self->token); @@ -346,7 +348,7 @@ choose_alt_uri (GUri *base_uri, } static GBytes * -remote_load_file (SoupSession *soup_session, +remote_load_file (FlatpakHttpSession *http_session, GUri *base, const char *subpath, const char **alt_uris, @@ -366,7 +368,7 @@ remote_load_file (SoupSession *soup_session, return NULL; } - bytes = flatpak_load_uri (soup_session, + bytes = flatpak_load_uri (http_session, uri_s, FLATPAK_HTTP_FLAGS_ACCEPT_OCI, token, NULL, NULL, out_content_type, @@ -388,7 +390,7 @@ flatpak_oci_registry_load_file (FlatpakOciRegistry *self, if (self->dfd != -1) return local_load_file (self->dfd, subpath, cancellable, error); else - return remote_load_file (self->soup_session, self->base_uri, subpath, alt_uris, self->token, out_content_type, cancellable, error); + return remote_load_file (self->http_session, self->base_uri, subpath, alt_uris, self->token, out_content_type, cancellable, error); } static JsonNode * @@ -549,6 +551,7 @@ flatpak_oci_registry_ensure_remote (FlatpakOciRegistry *self, return FALSE; } + self->http_session = flatpak_create_http_session (PACKAGE_STRING); self->soup_session = flatpak_create_soup_session (PACKAGE_STRING); baseuri = g_uri_parse (self->uri, FLATPAK_HTTP_URI_FLAGS | G_URI_FLAGS_PARSE_RELAXED, NULL); if (baseuri == NULL) @@ -817,7 +820,7 @@ flatpak_oci_registry_download_blob (FlatpakOciRegistry *self, if (fd == -1) return -1; - if (!flatpak_download_http_uri (self->soup_session, uri_s, + if (!flatpak_download_http_uri (self->http_session, uri_s, FLATPAK_HTTP_FLAGS_ACCEPT_OCI, out_stream, self->token, @@ -909,7 +912,7 @@ flatpak_oci_registry_mirror_blob (FlatpakOciRegistry *self, out_stream = g_unix_output_stream_new (tmpf.fd, FALSE); - if (!flatpak_download_http_uri (source_registry->soup_session, uri_s, + if (!flatpak_download_http_uri (source_registry->http_session, uri_s, FLATPAK_HTTP_FLAGS_ACCEPT_OCI, out_stream, self->token, progress_cb, user_data, @@ -2073,7 +2076,7 @@ flatpak_oci_registry_find_delta_manifest (FlatpakOciRegistry *registry, g_autofree char *uri_s = parse_relative_uri (registry->base_uri, delta_manifest_url, NULL); if (uri_s != NULL) - bytes = flatpak_load_uri (registry->soup_session, + bytes = flatpak_load_uri (registry->http_session, uri_s, FLATPAK_HTTP_FLAGS_ACCEPT_OCI, registry->token, NULL, NULL, NULL, @@ -2737,12 +2740,12 @@ compare_image_by_ref (ImageInfo *a, } gboolean -flatpak_oci_index_ensure_cached (SoupSession *soup_session, - const char *uri, - GFile *index, - char **index_uri_out, - GCancellable *cancellable, - GError **error) +flatpak_oci_index_ensure_cached (FlatpakHttpSession *http_session, + const char *uri, + GFile *index, + char **index_uri_out, + GCancellable *cancellable, + GError **error) { g_autofree char *index_path = g_file_get_path (index); g_autoptr(GUri) base_uri = NULL; @@ -2835,7 +2838,7 @@ flatpak_oci_index_ensure_cached (SoupSession *soup_session, query_uri_s = g_uri_to_string_partial (query_uri, G_URI_HIDE_PASSWORD); - success = flatpak_cache_http_uri (soup_session, + success = flatpak_cache_http_uri (http_session, query_uri_s, FLATPAK_HTTP_FLAGS_STORE_COMPRESSED, AT_FDCWD, index_path, @@ -3071,15 +3074,15 @@ flatpak_oci_index_make_summary (GFile *index, } static gboolean -add_icon_image (SoupSession *soup_session, - const char *index_uri, - int icons_dfd, - GHashTable *used_icons, - const char *subdir, - const char *id, - const char *icon_data, - GCancellable *cancellable, - GError **error) +add_icon_image (FlatpakHttpSession *http_session, + const char *index_uri, + int icons_dfd, + GHashTable *used_icons, + const char *subdir, + const char *id, + const char *icon_data, + GCancellable *cancellable, + GError **error) { g_autofree char *icon_name = g_strconcat (id, ".png", NULL); g_autofree char *icon_path = g_build_filename (subdir, icon_name, NULL); @@ -3123,7 +3126,7 @@ add_icon_image (SoupSession *soup_session, if (icon_uri_s == NULL) return FALSE; - if (!flatpak_cache_http_uri (soup_session, icon_uri_s, + if (!flatpak_cache_http_uri (http_session, icon_uri_s, 0 /* flags */, icons_dfd, icon_path, NULL, NULL, @@ -3141,7 +3144,7 @@ add_icon_image (SoupSession *soup_session, } static void -add_image_to_appstream (SoupSession *soup_session, +add_image_to_appstream (FlatpakHttpSession *http_session, const char *index_uri, FlatpakXml *appstream_root, int icons_dfd, @@ -3232,7 +3235,7 @@ add_image_to_appstream (SoupSession *soup_session, const char *icon_data = get_image_metadata (image, icon_sizes[i].label); if (icon_data) { - if (!add_icon_image (soup_session, + if (!add_icon_image (http_session, index_uri, icons_dfd, used_icons, @@ -3317,13 +3320,13 @@ clean_unused_icons (int icons_dfd, } GBytes * -flatpak_oci_index_make_appstream (SoupSession *soup_session, - GFile *index, - const char *index_uri, - const char *arch, - int icons_dfd, - GCancellable *cancellable, - GError **error) +flatpak_oci_index_make_appstream (FlatpakHttpSession *http_session, + GFile *index, + const char *index_uri, + const char *arch, + int icons_dfd, + GCancellable *cancellable, + GError **error) { g_autoptr(FlatpakOciIndexResponse) response = NULL; g_autoptr(FlatpakXml) appstream_root = NULL; @@ -3351,7 +3354,7 @@ flatpak_oci_index_make_appstream (SoupSession *soup_session, { FlatpakOciIndexImage *image = r->images[j]; if (g_strcmp0 (image->architecture, oci_arch) == 0) - add_image_to_appstream (soup_session, + add_image_to_appstream (http_session, index_uri, appstream_root, icons_dfd, used_icons, r, image, @@ -3367,7 +3370,7 @@ flatpak_oci_index_make_appstream (SoupSession *soup_session, { FlatpakOciIndexImage *image = list->images[k]; if (g_strcmp0 (image->architecture, oci_arch) == 0) - add_image_to_appstream (soup_session, + add_image_to_appstream (http_session, index_uri, appstream_root, icons_dfd, used_icons, r, image, diff --git a/common/flatpak-transaction.c b/common/flatpak-transaction.c index 79a15a52..c7dfed71 100644 --- a/common/flatpak-transaction.c +++ b/common/flatpak-transaction.c @@ -22,7 +22,6 @@ #include #include -#include #include "flatpak-auth-private.h" #include "flatpak-error.h" @@ -4314,7 +4313,7 @@ load_flatpakrepo_file (FlatpakTransaction *self, g_autoptr(GBytes) dep_data = NULL; g_autoptr(GKeyFile) dep_keyfile = g_key_file_new (); g_autoptr(GError) local_error = NULL; - g_autoptr(SoupSession) soup_session = NULL; + g_autoptr(FlatpakHttpSession) http_session = NULL; if (priv->disable_deps) return TRUE; @@ -4324,8 +4323,8 @@ load_flatpakrepo_file (FlatpakTransaction *self, !g_str_has_prefix (dep_url, "file:")) return flatpak_fail_error (error, FLATPAK_ERROR_INVALID_DATA, _("Flatpakrepo URL %s not file, HTTP or HTTPS"), dep_url); - soup_session = flatpak_create_soup_session (PACKAGE_STRING); - dep_data = flatpak_load_uri (soup_session, dep_url, 0, NULL, NULL, NULL, NULL, cancellable, error); + http_session = flatpak_create_http_session (PACKAGE_STRING); + dep_data = flatpak_load_uri (http_session, dep_url, 0, NULL, NULL, NULL, NULL, cancellable, error); if (dep_data == NULL) { g_prefix_error (error, _("Can't load dependent file %s: "), dep_url); diff --git a/common/flatpak-utils-http-private.h b/common/flatpak-utils-http-private.h index f1319f0f..e0c24adc 100644 --- a/common/flatpak-utils-http-private.h +++ b/common/flatpak-utils-http-private.h @@ -22,7 +22,6 @@ #define __FLATPAK_UTILS_HTTP_H__ #include - #include typedef enum { @@ -34,9 +33,15 @@ typedef enum { GQuark flatpak_http_error_quark (void); - SoupSession * flatpak_create_soup_session (const char *user_agent); +typedef struct FlatpakHttpSession FlatpakHttpSession; + +FlatpakHttpSession* flatpak_create_http_session (const char *user_agent); +void flatpak_http_session_free (FlatpakHttpSession* http_session); + +G_DEFINE_AUTOPTR_CLEANUP_FUNC(FlatpakHttpSession, flatpak_http_session_free) + typedef enum { FLATPAK_HTTP_FLAGS_NONE = 0, FLATPAK_HTTP_FLAGS_ACCEPT_OCI = 1 << 0, @@ -46,7 +51,7 @@ typedef enum { typedef void (*FlatpakLoadUriProgress) (guint64 downloaded_bytes, gpointer user_data); -GBytes * flatpak_load_uri (SoupSession *soup_session, +GBytes * flatpak_load_uri (FlatpakHttpSession *http_session, const char *uri, FlatpakHTTPFlags flags, const char *token, @@ -55,7 +60,7 @@ GBytes * flatpak_load_uri (SoupSession *soup_session, char **out_content_type, GCancellable *cancellable, GError **error); -gboolean flatpak_download_http_uri (SoupSession *soup_session, +gboolean flatpak_download_http_uri (FlatpakHttpSession *http_session, const char *uri, FlatpakHTTPFlags flags, GOutputStream *out, @@ -64,7 +69,7 @@ gboolean flatpak_download_http_uri (SoupSession *soup_session, gpointer user_data, GCancellable *cancellable, GError **error); -gboolean flatpak_cache_http_uri (SoupSession *soup_session, +gboolean flatpak_cache_http_uri (FlatpakHttpSession *http_session, const char *uri, FlatpakHTTPFlags flags, int dest_dfd, diff --git a/common/flatpak-utils-http.c b/common/flatpak-utils-http.c index f1e7b7ba..28004ea3 100644 --- a/common/flatpak-utils-http.c +++ b/common/flatpak-utils-http.c @@ -552,6 +552,20 @@ flatpak_create_soup_session (const char *user_agent) return soup_session; } +FlatpakHttpSession * +flatpak_create_http_session (const char *user_agent) +{ + return (FlatpakHttpSession *)flatpak_create_soup_session (user_agent); +} + +void +flatpak_http_session_free (FlatpakHttpSession* http_session) +{ + SoupSession *soup_session = (SoupSession *)http_session; + + g_object_unref (soup_session); +} + /* Check whether a particular operation should be retried. This is entirely * based on how it failed (if at all) last time, and whether the operation has * some retries left. The retry count is set when the operation is first @@ -585,7 +599,7 @@ flatpak_http_should_retry_request (const GError *error, } static GBytes * -flatpak_load_http_uri_once (SoupSession *soup_session, +flatpak_load_http_uri_once (FlatpakHttpSession *http_session, const char *uri, FlatpakHTTPFlags flags, const char *token, @@ -595,6 +609,7 @@ flatpak_load_http_uri_once (SoupSession *soup_session, GCancellable *cancellable, GError **error) { + SoupSession *soup_session = (SoupSession *)http_session; GBytes *bytes = NULL; g_autoptr(GMainContext) context = NULL; g_autoptr(SoupRequestHTTP) request = NULL; @@ -652,7 +667,7 @@ flatpak_load_http_uri_once (SoupSession *soup_session, } GBytes * -flatpak_load_uri (SoupSession *soup_session, +flatpak_load_uri (FlatpakHttpSession *http_session, const char *uri, FlatpakHTTPFlags flags, const char *token, @@ -693,7 +708,7 @@ flatpak_load_uri (SoupSession *soup_session, progress (0, user_data); /* Reset the progress */ } - bytes = flatpak_load_http_uri_once (soup_session, uri, flags, + bytes = flatpak_load_http_uri_once (http_session, uri, flags, token, progress, user_data, out_content_type, cancellable, &local_error); @@ -708,7 +723,7 @@ flatpak_load_uri (SoupSession *soup_session, } static gboolean -flatpak_download_http_uri_once (SoupSession *soup_session, +flatpak_download_http_uri_once (FlatpakHttpSession *http_session, const char *uri, FlatpakHTTPFlags flags, GOutputStream *out, @@ -719,6 +734,7 @@ flatpak_download_http_uri_once (SoupSession *soup_session, GCancellable *cancellable, GError **error) { + SoupSession *soup_session = (SoupSession *)http_session; g_autoptr(SoupRequestHTTP) request = NULL; g_autoptr(GMainContext) context = NULL; LoadUriData data = { NULL }; @@ -773,7 +789,7 @@ flatpak_download_http_uri_once (SoupSession *soup_session, } gboolean -flatpak_download_http_uri (SoupSession *soup_session, +flatpak_download_http_uri (FlatpakHttpSession *http_session, const char *uri, FlatpakHTTPFlags flags, GOutputStream *out, @@ -801,7 +817,7 @@ flatpak_download_http_uri (SoupSession *soup_session, progress (0, user_data); /* Reset the progress */ } - if (flatpak_download_http_uri_once (soup_session, uri, flags, + if (flatpak_download_http_uri_once (http_session, uri, flags, out, token, progress, user_data, &bytes_written, @@ -856,7 +872,7 @@ sync_and_rename_tmpfile (GLnxTmpfile *tmpfile, } static gboolean -flatpak_cache_http_uri_once (SoupSession *soup_session, +flatpak_cache_http_uri_once (FlatpakHttpSession *http_session, const char *uri, FlatpakHTTPFlags flags, int dest_dfd, @@ -866,6 +882,7 @@ flatpak_cache_http_uri_once (SoupSession *soup_session, GCancellable *cancellable, GError **error) { + SoupSession *soup_session = (SoupSession *)http_session; g_autoptr(SoupRequestHTTP) request = NULL; g_autoptr(GMainContext) context = NULL; g_autoptr(CacheHttpData) cache_data = NULL; @@ -1023,7 +1040,7 @@ flatpak_cache_http_uri_once (SoupSession *soup_session, } gboolean -flatpak_cache_http_uri (SoupSession *soup_session, +flatpak_cache_http_uri (FlatpakHttpSession *http_session, const char *uri, FlatpakHTTPFlags flags, int dest_dfd, @@ -1049,7 +1066,7 @@ flatpak_cache_http_uri (SoupSession *soup_session, progress (0, user_data); /* Reset the progress */ } - if (flatpak_cache_http_uri_once (soup_session, uri, flags, + if (flatpak_cache_http_uri_once (http_session, uri, flags, dest_dfd, dest_subpath, progress, user_data, cancellable, &local_error)) diff --git a/oci-authenticator/flatpak-oci-authenticator.c b/oci-authenticator/flatpak-oci-authenticator.c index e20fb79c..6555d472 100644 --- a/oci-authenticator/flatpak-oci-authenticator.c +++ b/oci-authenticator/flatpak-oci-authenticator.c @@ -33,7 +33,7 @@ FlatpakAuthenticator *authenticator; static GMainLoop *main_loop = NULL; static guint name_owner_id = 0; static gboolean no_idle_exit = FALSE; -static SoupSession *http_session = NULL; +static FlatpakHttpSession *http_session = NULL; #define IDLE_TIMEOUT_SECS 10 * 60 @@ -769,7 +769,7 @@ main (int argc, g_debug ("Started flatpak-authenticator"); - http_session = flatpak_create_soup_session (PACKAGE_STRING); + http_session = flatpak_create_http_session (PACKAGE_STRING); session_bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error); if (session_bus == NULL) diff --git a/tests/httpcache.c b/tests/httpcache.c index 57f92b04..095b732f 100644 --- a/tests/httpcache.c +++ b/tests/httpcache.c @@ -3,7 +3,7 @@ int main (int argc, char *argv[]) { - g_autoptr(SoupSession) session = flatpak_create_soup_session (PACKAGE_STRING); + g_autoptr(FlatpakHttpSession) session = flatpak_create_http_session (PACKAGE_STRING); GError *error = NULL; const char *url, *dest; int flags = 0;