From 995baa1197f71cb95faa16c6cfdcada213f37c6b Mon Sep 17 00:00:00 2001 From: Mohamed Kallel Date: Tue, 17 Sep 2013 15:05:47 +0100 Subject: [PATCH] add software version backup only for 1 firmware image --- event.c | 3 +++ xml.c | 20 +++++++++++--------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/event.c b/event.c index fe1aa72..d22d53e 100644 --- a/event.c +++ b/event.c @@ -415,6 +415,9 @@ void sotfware_version_value_change(struct cwmp *cwmp, struct transfer_complete * struct parameter_container *parameter_container; char *current_software_version = NULL; + if (!p->old_software_version || p->old_software_version[0] == 0) + return; + external_init(); external_get_action("value", DM_SOFTWARE_VERSION_PATH, NULL); external_handle_action(cwmp_handle_getParamValues); diff --git a/xml.c b/xml.c index f8318c4..09d3754 100644 --- a/xml.c +++ b/xml.c @@ -1922,15 +1922,17 @@ void *thread_cwmp_rpc_cpe_download (void *v) } else { - external_get_action("value", DM_SOFTWARE_VERSION_PATH, NULL); - external_handle_action(cwmp_handle_getParamValues); - parameter_container = list_entry(external_list_parameter.next, struct parameter_container, list); - if ((!parameter_container->fault_code || parameter_container->fault_code[0] != '9') && - strcmp(parameter_container->name, DM_SOFTWARE_VERSION_PATH) == 0) - { - ptransfer_complete->old_software_version = strdup(parameter_container->data); - } - external_free_list_parameter(); + if (pdownload->file_type[0] == '1') { + external_get_action("value", DM_SOFTWARE_VERSION_PATH, NULL); + external_handle_action(cwmp_handle_getParamValues); + parameter_container = list_entry(external_list_parameter.next, struct parameter_container, list); + if ((!parameter_container->fault_code || parameter_container->fault_code[0] != '9') && + strcmp(parameter_container->name, DM_SOFTWARE_VERSION_PATH) == 0) + { + ptransfer_complete->old_software_version = strdup(parameter_container->data); + } + external_free_list_parameter(); + } bkp_session_insert_transfer_complete(ptransfer_complete); bkp_session_save(); external_apply("download", pdownload->file_type);