diff --git a/.gitignore b/.gitignore index e6de34d17e7d00363432eb5d027bb20c96434030..7e79bd01e205c5e8dccd208e8afb514ac74e5b8e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ src/sysmngr -src/*.o -src/*.so +*.o +*.so *.swp *.swo +/compile_commands.json diff --git a/gitlab-ci/shared.sh b/gitlab-ci/shared.sh index dc606510de3df2aea40656ed8fb4bd4c8a414169..cda2b900fe4587c6d714246e2e081b1a5b76859f 100644 --- a/gitlab-ci/shared.sh +++ b/gitlab-ci/shared.sh @@ -22,6 +22,6 @@ function install_bbfdm() fi cd /opt/dev/bbfdm - ./gitlab-ci/install-dependencies.sh install - ./gitlab-ci/setup.sh install + ./gitlab-ci/install-dependencies.sh + ./gitlab-ci/setup.sh } diff --git a/src/fwbank.c b/src/fwbank.c index 7e85c21e6444b8e58ea882930a2982bf9ab3afd9..fce306ef2834dc0b80c9c094ff7199f3a853c36f 100644 --- a/src/fwbank.c +++ b/src/fwbank.c @@ -70,7 +70,6 @@ struct blobmsg_policy sysmngr_bank_policy[] = { { "upgrade", BLOBMSG_TYPE_BOOL }, { "fwver", BLOBMSG_TYPE_STRING }, { "swver", BLOBMSG_TYPE_STRING }, - { "omci_swver", BLOBMSG_TYPE_STRING }, { "status", BLOBMSG_TYPE_STRING } }; @@ -246,22 +245,25 @@ static int validate_global_fwbank_dump(struct blob_buf *fwbank_dump_bb) } struct blob_attr *entry = NULL; - int rem = 0; + int rem = 0, valid = -1; blobmsg_for_each_attr(entry, tb[0], rem) { // parse bank array - struct blob_attr *t[9] = {0}; + struct blob_attr *t[8] = {0}; - if (blobmsg_parse(sysmngr_bank_policy, 9, t, blobmsg_data(entry), blobmsg_len(entry))) { + if (blobmsg_parse(sysmngr_bank_policy, ARRAY_SIZE(sysmngr_bank_policy), t, blobmsg_data(entry), blobmsg_len(entry))) { BBF_ERR("Failed to parse bank entry"); - return -1; + continue; } - if (!t[0] || !t[1] || !t[2] || !t[3] || !t[4] || !t[5] || !t[6] || !t[7] || !t[8]) - return -1; + // mark the valid flag, if one bank has valid data + if (t[0] && t[1] && t[2] && t[3] && t[4] && t[5] && t[6] && t[7]) { + valid = 0; + break; + } } BBF_DEBUG("Global fwbank dump validation passed"); - return 0; + return valid; } static void fwbank_dump_finish_callback(struct ubus_context *ctx, struct ubus_request_data *req, int *pipe_fds, uint32_t bank_id) @@ -338,7 +340,7 @@ static int init_global_fwbank_dump(void) { BBF_DEBUG("Initializing global fwbank dump"); - int res = sysmngr_task_fork(fwbank_dump_finish_callback, FWBANK_DUMP_CMD, 10, NULL, 0); + int res = sysmngr_task_fork(fwbank_dump_finish_callback, FWBANK_DUMP_CMD, 120, NULL, 0); if (res) { BBF_ERR("Failed to start task for fwbank dump command"); return -1; @@ -541,7 +543,7 @@ int sysmngr_fwbank_set_bootbank(uint32_t bank_id, struct ubus_request_data *req) snprintf(cmd, sizeof(cmd), "echo '{\"bank\":%u}' | %s 2>/dev/null", bank_id, FWBANK_SET_BOOTBANK_CMD); - int res = sysmngr_task_fork(fwbank_set_bootbank_finish_callback, cmd, 5, req, 0); + int res = sysmngr_task_fork(fwbank_set_bootbank_finish_callback, cmd, 10, req, 0); if (res) { BBF_ERR("Failed to start task for fwbank set bootbank command"); return -1;