diff --git a/src/libostree/ostree-remote-private.h b/src/libostree/ostree-remote-private.h index 13f757ed..856cdaa6 100644 --- a/src/libostree/ostree-remote-private.h +++ b/src/libostree/ostree-remote-private.h @@ -46,7 +46,7 @@ struct OstreeRemote { }; G_GNUC_INTERNAL -OstreeRemote *ostree_remote_new (void); +OstreeRemote *ostree_remote_new (const gchar *name); G_GNUC_INTERNAL OstreeRemote *ostree_remote_new_from_keyfile (GKeyFile *keyfile, diff --git a/src/libostree/ostree-remote.c b/src/libostree/ostree-remote.c index f34fafa4..1932b22f 100644 --- a/src/libostree/ostree-remote.c +++ b/src/libostree/ostree-remote.c @@ -53,12 +53,17 @@ */ OstreeRemote * -ostree_remote_new (void) +ostree_remote_new (const gchar *name) { OstreeRemote *remote; + g_return_val_if_fail (name != NULL && *name != '\0', NULL); + remote = g_slice_new0 (OstreeRemote); remote->ref_count = 1; + remote->name = g_strdup (name); + remote->group = g_strdup_printf ("remote \"%s\"", name); + remote->keyring = g_strdup_printf ("%s.trustedkeys.gpg", name); remote->options = g_key_file_new (); return remote; @@ -70,6 +75,7 @@ ostree_remote_new_from_keyfile (GKeyFile *keyfile, { g_autoptr(GMatchInfo) match = NULL; OstreeRemote *remote; + g_autofree gchar *name = NULL; static gsize regex_initialized; static GRegex *regex; @@ -88,10 +94,8 @@ ostree_remote_new_from_keyfile (GKeyFile *keyfile, if (!g_regex_match (regex, group, 0, &match)) return NULL; - remote = ostree_remote_new (); - remote->name = g_match_info_fetch (match, 1); - remote->group = g_strdup (group); - remote->keyring = g_strdup_printf ("%s.trustedkeys.gpg", remote->name); + name = g_match_info_fetch (match, 1); + remote = ostree_remote_new (name); ot_keyfile_copy_group (keyfile, remote->options, group); diff --git a/src/libostree/ostree-repo.c b/src/libostree/ostree-repo.c index 2ef64ec0..b47bd382 100644 --- a/src/libostree/ostree-repo.c +++ b/src/libostree/ostree-repo.c @@ -882,10 +882,7 @@ impl_repo_remote_add (OstreeRepo *self, name, remote->file ? gs_file_get_path_cached (remote->file) : "(in config)"); } - remote = ostree_remote_new (); - remote->name = g_strdup (name); - remote->group = g_strdup_printf ("remote \"%s\"", name); - remote->keyring = g_strdup_printf ("%s.trustedkeys.gpg", name); + remote = ostree_remote_new (name); /* The OstreeRepo maintains its own internal system root path, * so we need to not only check if a "sysroot" argument was given