mirror of
https://github.com/flatpak/flatpak.git
synced 2026-01-26 14:13:26 +00:00
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.
This commit is contained in:
parent
d4508905a5
commit
b1083a4c41
@ -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);
|
||||
|
||||
@ -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)
|
||||
{
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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__ */
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -22,7 +22,6 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <glib/gi18n-lib.h>
|
||||
#include <libsoup/soup.h>
|
||||
|
||||
#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);
|
||||
|
||||
@ -22,7 +22,6 @@
|
||||
#define __FLATPAK_UTILS_HTTP_H__
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include <libsoup/soup.h>
|
||||
|
||||
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,
|
||||
|
||||
@ -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))
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user