bug fixing: schedule download

This commit is contained in:
imen.bhiri 2016-06-07 15:23:42 +01:00
parent c467a243eb
commit 8cd7bd4d21
4 changed files with 17 additions and 21 deletions

View file

@ -250,7 +250,7 @@ int external_simple(char *command, char *arg)
return 0;
}
int external_download(char *url, char *size, char *type, char *user, char *pass,...)
int external_download(char *url, char *size, char *type, char *user, char *pass, time_t c)
{
DD(INFO,"executing download url '%s'", url);
@ -271,7 +271,7 @@ int external_download(char *url, char *size, char *type, char *user, char *pass,
json_obj_out_add(json_obj_out, "type", type);
if(user) json_obj_out_add(json_obj_out, "user", user);
if(pass) json_obj_out_add(json_obj_out, "pass", pass);
if(id) json_obj_out_add(json_obj_out, "id", id);
if(id) json_obj_out_add(json_obj_out, "ids", id);
external_write_pipe_output(json_object_to_json_string(json_obj_out));
json_object_put(json_obj_out);
@ -338,18 +338,14 @@ int external_change_du_state_uninstall(char *package_name)
return 0;
}
int external_apply(char *action, char *arg,...)
int external_apply(char *action, char *arg, time_t c)
{
time_t c = 0;
DD(INFO,"executing apply %s", action);
json_object *json_obj_out;
char *id = NULL;
va_list ap; //création du pointeur
va_start(ap,arg);
c = (time_t) va_arg(ap,time_t);
asprintf(&id, "%ld", c);
if (c) asprintf(&id, "%ld", c);
/* send data to the script */
json_obj_out = json_object_new_object();
@ -358,7 +354,7 @@ int external_apply(char *action, char *arg,...)
json_obj_out_add(json_obj_out, "action", action);
if (arg) json_obj_out_add(json_obj_out, "arg", arg);
if(id) json_obj_out_add(json_obj_out, "id", id);
if(id) json_obj_out_add(json_obj_out, "ids", id);
external_write_pipe_output(json_object_to_json_string(json_obj_out));
json_object_put(json_obj_out);

View file

@ -28,9 +28,9 @@ void external_fetch_uploadFaultResp (char **fault_code);
void external_uninstallFaultResp (char *fault_code);
void external_fetch_uninstallFaultResp (char **fault);
int external_simple(char *command, char *arg);
int external_download(char *url, char *size, char *type, char *user, char *pass,...);
int external_download(char *url, char *size, char *type, char *user, char *pass,time_t c);
int external_upload(char *url, char *type, char *user, char *pass);
int external_apply(char *action, char *arg,...);
int external_apply(char *action, char *arg,time_t c);
int external_change_du_state_uninstall(char *package_name);
int external_handle_action(int (*external_handler)(char *msg));
void external_add_list_paramameter(char *param_name, char *param_data, char *param_type, char *fault_code);

View file

@ -275,7 +275,7 @@ handle_action() {
mv /tmp/icwmp_download /tmp/web_content.ipk 2> /dev/null
icwmp_fault_output "" "$FAULT_CPE_NO_FAULT"
elif [ "$__arg3" = "3" ];then
if [ "$__arg6" != "0" ]; then
if [ "$__arg6" != "" ]; then
local tmp="/etc/vendor_configuration_file_${__arg6}.cfg"
mv /tmp/icwmp_download "$tmp" 2> /dev/null
else
@ -318,7 +318,7 @@ handle_action() {
fi
;;
3)
if [ "$__arg2" != "0" ]; then
if [ "$__arg2" != "" ]; then
icwmp_apply_vendor_configuration $__arg2
else
icwmp_apply_vendor_configuration
@ -404,7 +404,7 @@ handle_action() {
json_get_var __arg3 type
json_get_var __arg4 user
json_get_var __arg5 pass
json_get_var __arg6 id
json_get_var __arg6 ids
action="download"
;;
du_download)
@ -434,7 +434,7 @@ handle_action() {
action="apply_value"
elif [ "$action" = "download" ]; then
json_get_var __arg1 arg
json_get_var __arg2 id
json_get_var __arg2 ids
action="apply_download"
elif [ "$action" = "du_download" ]; then
json_get_var __arg1 arg

12
xml.c
View file

@ -2248,7 +2248,7 @@ int cwmp_launch_download(struct download *pdownload, struct transfer_complete **
sprintf(file_size,"%d",pdownload->file_size);
external_download(pdownload->url, file_size, pdownload->file_type,
pdownload->username, pdownload->password);
pdownload->username, pdownload->password, 0);
external_handle_action(cwmp_handle_downloadFault);
external_fetch_downloadFaultResp(&fault_code);
@ -2527,7 +2527,7 @@ void *thread_cwmp_rpc_cpe_download (void *v)
}
bkp_session_insert_transfer_complete(ptransfer_complete);
bkp_session_save();
external_apply("download", pdownload->file_type);
external_apply("download", pdownload->file_type, 0);
external_handle_action(cwmp_handle_downloadFault);
external_fetch_downloadFaultResp(&fault_code);
if(fault_code != NULL)
@ -2789,7 +2789,7 @@ void *thread_cwmp_rpc_cpe_schedule_download (void *v)
}
bkp_session_insert_transfer_complete(ptransfer_complete);
bkp_session_save();
external_apply("download", current_download->file_type);
external_apply("download", current_download->file_type, 0);
external_handle_action(cwmp_handle_downloadFault);
external_fetch_downloadFaultResp(&fault_code);
if(fault_code != NULL)
@ -3136,7 +3136,7 @@ void *thread_cwmp_rpc_cpe_change_du_state (void *v)
res->fault = error;
break;
}
external_apply("du_download", "install");
external_apply("du_download", "install", 0);
external_handle_action(cwmp_handle_dustate_changeFault);
external_fetch_du_change_stateFaultResp(&fault_code, &package_version, &package_name);
if(fault_code != NULL)
@ -3311,7 +3311,7 @@ void *thread_cwmp_rpc_cpe_change_du_state (void *v)
break;
break;
}
external_apply("du_download", "update");
external_apply("du_download", "update", 0);
external_handle_action(cwmp_handle_dustate_changeFault);
external_fetch_du_change_stateFaultResp(&fault_code, &package_version, &package_name);
if(fault_code != NULL)
@ -4447,7 +4447,7 @@ int cwmp_handle_rpc_cpe_schedule_download(struct session *session, struct rpc *r
strcmp(file_type,"4 Tone File") &&
strcmp(file_type,"5 Ringer File"))
{
error = FAULT_CPE_REQUEST_DENIED;
error = FAULT_CPE_INVALID_ARGUMENTS;
}
else if((
strcmp(windowmode0,"1 At Any Time") &&