diff options
| author | 2024-01-02 21:11:05 -0600 | |
|---|---|---|
| committer | 2024-01-02 21:11:05 -0600 | |
| commit | d0216f9f2ef07c33554e225ede04157afc4947d7 (patch) | |
| tree | 9b5a3f6b5be63c6e2e3567436b3393801ede4ed8 /src/version.c | |
| parent | library downloads complete (diff) | |
make library API better
Diffstat (limited to 'src/version.c')
| -rw-r--r-- | src/version.c | 48 |
1 files changed, 18 insertions, 30 deletions
diff --git a/src/version.c b/src/version.c index a1a5e5c..37ae3ba 100644 --- a/src/version.c +++ b/src/version.c @@ -596,7 +596,7 @@ int l2_version_check_integrity(FILE *fp, l2_sha1_digest_t *digest, size_t sz) } unsigned l2_version__collect_libraries(json_t *jlibs, l2_subst_t *subst, struct l2_version_library **libs, l2_version_feature_match_proc_t *feature_matcher); -void l2_version__free_libraries(struct l2_version_library *libs); +void l2_version_free_libraries(struct l2_version_library *libs); int l2_version__get_library_artifact_path(json_t *lib, l2_subst_t *subst, const char *classifier, char **path); int l2_version__library_should_download(struct l2_version_library *lib); @@ -700,7 +700,7 @@ int l2_version__dlpool_libs_complete(CURL *curl, CURLcode code, void *user) return 0; } -unsigned l2_version__actually_download_libraries(struct l2_version_library *libs) +unsigned l2_version_download_libraries(struct l2_version_library *libs) { unsigned res = VERSION_SUCCESS; struct l2_version__library_dl_data *head = NULL, *tail = NULL; @@ -932,43 +932,31 @@ cleanup: return res; } -unsigned l2_version_download_libraries(json_t *jlibraries, l2_version_feature_match_proc_t *feature_matcher) +unsigned l2_version_collect_libraries(json_t *version, struct l2_version_library **libs, l2_version_feature_match_proc_t *feature_matcher) { - struct l2_version_library *plib = NULL; - unsigned ret = VERSION_EDOWNLOAD; - l2_subst_t *sp = NULL; - - if (l2_subst_init(&sp) < 0) { - ret = VERSION_EALLOC; - goto cleanup; - } + json_t *jlibs; + unsigned res; - if (l2_subst_add(sp, "arch", L2SU_LAUNCHER_ARCH_BITS) < 0) { - ret = VERSION_EALLOC; - goto cleanup; + if (json_unpack(version, "{s:o}", "libraries", &jlibs) < 0) { + return VERSION_EJSON; } - ret = l2_version__collect_libraries(jlibraries, sp, &plib, feature_matcher); - if (ret != VERSION_SUCCESS) goto cleanup; - - ret = l2_version__retrieve_library_integ(plib); - if (ret != VERSION_SUCCESS) { - CMD_WARN0("Failed to retrieve integrity information on libraries for which it was missing!"); + l2_subst_t *subst = NULL; + if (l2_subst_init(&subst) < 0) { + res = VERSION_EALLOC; goto cleanup; } - ret = l2_version__actually_download_libraries(plib); - if (ret != VERSION_SUCCESS) { - CMD_WARN0("Library downloads failed."); + if (l2_subst_add(subst, "arch", L2SU_LAUNCHER_ARCH_BITS) < 0) { + res = VERSION_EALLOC; goto cleanup; } - /* TODO: return libraries */ + res = l2_version__collect_libraries(jlibs, subst, libs, feature_matcher); cleanup: - if (sp) l2_subst_free(sp); - if (plib) l2_version__free_libraries(plib); - return ret; + if (subst) l2_subst_free(subst); + return res; } unsigned l2_version__library_get_classifier(json_t *lib, const char **class) @@ -1129,7 +1117,7 @@ unsigned l2_version__gen_one_library(json_t *lib, l2_subst_t *subst, struct l2_v return VERSION_SUCCESS; cleanup: - l2_version__free_libraries(retlib); + l2_version_free_libraries(retlib); return res; } @@ -1190,11 +1178,11 @@ unsigned l2_version__collect_libraries(json_t *jlibs, l2_subst_t *subst, struct cleanup: /* free libraries */ - l2_version__free_libraries(libraries); + l2_version_free_libraries(libraries); return ret; } -void l2_version__free_libraries(struct l2_version_library *libs) +void l2_version_free_libraries(struct l2_version_library *libs) { if (!libs) return; char **excludecur; |
