- i->glue->on_finished = dkr_import_curl_on_finished;
- i->glue->userdata = i;
-
- *import = i;
- i = NULL;
-
- return 0;
-}
-
-DkrImport* dkr_import_unref(DkrImport *import) {
- DkrImportName *n;
- DkrImportJob *j;
-
- if (!import)
- return NULL;
-
- while ((n = hashmap_steal_first(import->names)))
- dkr_import_name_unref(n);
- hashmap_free(import->names);
-
- while ((j = hashmap_steal_first(import->jobs)))
- dkr_import_job_unref(j);
- hashmap_free(import->jobs);
-
- curl_glue_unref(import->glue);
- sd_event_unref(import->event);
-
- free(import);
-
- return NULL;
-}
-
-int dkr_import_cancel(DkrImport *import, const char *name) {
- DkrImportName *n;
-
- assert(import);
- assert(name);
-
- n = hashmap_remove(import->names, name);
- if (!n)
- return 0;
-
- dkr_import_name_unref(n);
- return 1;
-}
-
-int dkr_import_pull(DkrImport *import, const char *index_url, const char *name, const char *tag, const char *local, bool force_local) {
- _cleanup_(dkr_import_name_unrefp) DkrImportName *n = NULL;
- char *e;
- int r;
-
- assert(import);
- assert(dkr_url_is_valid(index_url));
- assert(dkr_name_is_valid(name));
- assert(dkr_tag_is_valid(tag));
- assert(!local || machine_name_is_valid(local));