add software version backup only for 1 firmware image

This commit is contained in:
Mohamed Kallel 2013-09-17 15:05:47 +01:00 committed by Strhuan Blomquist
parent 40e86bb5ab
commit 995baa1197
2 changed files with 14 additions and 9 deletions

View file

@ -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);

20
xml.c
View file

@ -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);