repo: Add _ostree_repo_get_remote_option_inherit()

Split out from ostree-repo-pull.c.  Still private but more reusable now.
This commit is contained in:
Matthew Barnes 2015-06-06 15:52:44 -04:00 committed by Giuseppe Scrivano
parent b02777accd
commit e592faec43
3 changed files with 43 additions and 30 deletions

View File

@ -196,6 +196,13 @@ _ostree_repo_get_remote_boolean_option (OstreeRepo *self,
gboolean *out_value,
GError **error);
gboolean
_ostree_repo_get_remote_option_inherit (OstreeRepo *self,
const char *remote_name,
const char *option_name,
char **out_value,
GError **error);
OstreeFetcher *
_ostree_repo_remote_new_fetcher (OstreeRepo *self,
const char *remote_name,

View File

@ -1245,35 +1245,6 @@ enqueue_one_object_request (OtPullData *pull_data,
soup_uri_free (obj_uri);
}
static gboolean
repo_get_remote_option_inherit (OstreeRepo *self,
const char *remote_name,
const char *option_name,
char **out_value,
GError **error)
{
OstreeRepo *parent = ostree_repo_get_parent (self);
g_autofree char *value = NULL;
gboolean ret = FALSE;
if (!_ostree_repo_get_remote_option (self, remote_name, option_name, NULL, &value, error))
goto out;
if (value == NULL && parent != NULL)
{
if (!repo_get_remote_option_inherit (parent, remote_name, option_name, &value, error))
goto out;
}
/* Success here just means no error occurred during lookup,
* not necessarily that we found a value for the option name. */
ot_transfer_out_value (out_value, &value);
ret = TRUE;
out:
return ret;
}
static gboolean
load_remote_repo_config (OtPullData *pull_data,
GKeyFile **out_keyfile,
@ -1735,7 +1706,7 @@ ostree_repo_pull_with_options (OstreeRepo *self,
{
if (baseurl == NULL)
{
if (!repo_get_remote_option_inherit (self, remote_name_or_baseurl, "url", &baseurl, error))
if (!_ostree_repo_get_remote_option_inherit (self, remote_name_or_baseurl, "url", &baseurl, error))
goto out;
}

View File

@ -355,6 +355,41 @@ _ostree_repo_get_remote_boolean_option (OstreeRepo *self,
return ret;
}
gboolean
_ostree_repo_get_remote_option_inherit (OstreeRepo *self,
const char *remote_name,
const char *option_name,
char **out_value,
GError **error)
{
OstreeRepo *parent = ostree_repo_get_parent (self);
g_autofree char *value = NULL;
gboolean ret = FALSE;
if (!_ostree_repo_get_remote_option (self,
remote_name, option_name,
NULL, &value, error))
goto out;
if (value == NULL && parent != NULL)
{
if (!_ostree_repo_get_remote_option_inherit (parent,
remote_name, option_name,
&value, error))
goto out;
}
/* Success here just means no error occurred during lookup,
* not necessarily that we found a value for the option name. */
if (out_value != NULL)
*out_value = g_steal_pointer (&value);
ret = TRUE;
out:
return ret;
}
OstreeFetcher *
_ostree_repo_remote_new_fetcher (OstreeRepo *self,
const char *remote_name,