aboutsummaryrefslogtreecommitdiffstats
path: root/src/version.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/version.c')
-rw-r--r--src/version.c48
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;