Code Cleanup

This commit is contained in:
Suvendhu Hansa 2024-09-16 03:16:49 +00:00 committed by IOPSYS Dev
parent 726b510457
commit 75b3e8ccb6
No known key found for this signature in database
27 changed files with 85 additions and 112 deletions

View file

@ -31,6 +31,9 @@ struct autonomous_event {
autonomous_event_callback cb; autonomous_event_callback cb;
}; };
static void free_autonomous_du_state_change_complete_data(auto_du_state_change_compl *p);
static void free_autonomous_transfer_complete_data(auto_transfer_complete *p);
static bool validate_du_state_change_data(auto_du_state_change_compl *data) static bool validate_du_state_change_data(auto_du_state_change_compl *data)
{ {

View file

@ -20,6 +20,4 @@ void autonomous_notification_handler(struct ubus_context *ctx __attribute__((unu
const char *type __attribute__((unused)), struct blob_attr *msg); const char *type __attribute__((unused)), struct blob_attr *msg);
int cwmp_rpc_acs_destroy_data_autonomous_du_state_change_complete(struct rpc *rpc); int cwmp_rpc_acs_destroy_data_autonomous_du_state_change_complete(struct rpc *rpc);
int cwmp_rpc_acs_destroy_data_autonomous_transfer_complete(struct rpc *rpc); int cwmp_rpc_acs_destroy_data_autonomous_transfer_complete(struct rpc *rpc);
void free_autonomous_du_state_change_complete_data(auto_du_state_change_compl *p);
void free_autonomous_transfer_complete_data(auto_transfer_complete *p);
#endif #endif

View file

@ -26,6 +26,13 @@
static mxml_node_t *bkp_tree = NULL; static mxml_node_t *bkp_tree = NULL;
struct search_keywords {
char *name;
char *value;
};
static int bkp_session_check_file();
int cwmp_init_backup_session(char **ret, enum backup_loading load) int cwmp_init_backup_session(char **ret, enum backup_loading load)
{ {
if (bkp_session_check_file()) if (bkp_session_check_file())

View file

@ -32,13 +32,7 @@ typedef enum backup_loading
CR_PORT CR_PORT
} backup_loading; } backup_loading;
struct search_keywords {
char *name;
char *value;
};
int cwmp_init_backup_session(char **ret, enum backup_loading load); int cwmp_init_backup_session(char **ret, enum backup_loading load);
int bkp_session_check_file();
void bkp_session_save(); void bkp_session_save();
int cwmp_load_saved_session(char **acsurl, enum backup_loading load); int cwmp_load_saved_session(char **acsurl, enum backup_loading load);
int save_acs_bkp_config(); int save_acs_bkp_config();

View file

@ -1351,21 +1351,6 @@ void *cwmp_memcpy(void *dst, const void *src, size_t size, const char *origin, i
} }
} }
void cwmp_restart_service(struct uloop_timeout *timeout __attribute__((unused)))
{
struct blob_buf b = { 0 };
CWMP_MEMSET(&b, 0, sizeof(struct blob_buf));
blob_buf_init(&b, 0);
bb_add_string(&b, "name", "icwmpd");
bb_add_string(&b, "action", "restart");
icwmp_ubus_invoke("rc", "init", b.head, NULL, NULL);
blob_buf_free(&b);
CWMP_LOG(DEBUG, "Scheduled icwmpd restart");
}
int regex_replace(char **str, const char *pattern, const char *replace, int *match_count) { int regex_replace(char **str, const char *pattern, const char *replace, int *match_count) {
regex_t reg; regex_t reg;

View file

@ -673,7 +673,6 @@ bool is_ipv6_status_changed(void);
char *get_time(time_t t_time); char *get_time(time_t t_time);
bool is_reload_parameter(const char *object_name); bool is_reload_parameter(const char *object_name);
time_t convert_datetime_to_timestamp(char *value); time_t convert_datetime_to_timestamp(char *value);
int run_session_end_func(void);
void set_interface_reset_request(char *param_name, char *value); void set_interface_reset_request(char *param_name, char *value);
bool str_to_bool(char *value); bool str_to_bool(char *value);
bool match_reg_exp(char *reg_exp, char *param_name); bool match_reg_exp(char *reg_exp, char *param_name);
@ -694,7 +693,6 @@ char *cwmp_strncpy(char *dst, const char *src, int size, const char *origin, int
char *cwmp_strdup(const char *s1, const char *origin, int pos); char *cwmp_strdup(const char *s1, const char *origin, int pos);
void *cwmp_memset(void *src, int val, size_t size, const char *origin, int pos); void *cwmp_memset(void *src, int val, size_t size, const char *origin, int pos);
void *cwmp_memcpy(void *dst, const void *src, size_t size, const char *origin, int pos); void *cwmp_memcpy(void *dst, const void *src, size_t size, const char *origin, int pos);
void cwmp_restart_service(struct uloop_timeout *timeout __attribute__((unused)));
int regex_replace(char **str, const char *pattern, const char *replace, int *match_count); int regex_replace(char **str, const char *pattern, const char *replace, int *match_count);
void stop_service(void); void stop_service(void);
void icwmp_init_critical_services(void); void icwmp_init_critical_services(void);

View file

@ -24,6 +24,10 @@
LIST_HEAD(list_change_du_state); LIST_HEAD(list_change_du_state);
static int cwmp_du_install(char *url, char *uuid, char *user, char *pass, char *path, char *env_ref, char **fault_code);
static int cwmp_du_update(char *url, char *user, char *pass, char *du_path, char **fault_code);
static int cwmp_du_uninstall(char *du_path, char **fault_code);
static char *generate_uuid(void) static char *generate_uuid(void)
{ {
uuid_t binuuid; uuid_t binuuid;
@ -463,7 +467,7 @@ void change_du_state_execute(struct uloop_timeout *utimeout)
struct opresult *res; struct opresult *res;
struct du_state_change_complete *pdu_state_change_complete; struct du_state_change_complete *pdu_state_change_complete;
char *du_ref = NULL; char *du_ref = NULL;
char du_path[2048] = {0}; char du_path[128] = {0};
//struct session_timer_event cdu_inform_event = {.session_timer_evt = {.cb = cwmp_schedule_session_with_event}, .event = CDU_Evt}; //struct session_timer_event cdu_inform_event = {.session_timer_evt = {.cb = cwmp_schedule_session_with_event}, .event = CDU_Evt};
struct session_timer_event *cdu_inform_event = calloc(1, sizeof(struct session_timer_event)); struct session_timer_event *cdu_inform_event = calloc(1, sizeof(struct session_timer_event));

View file

@ -18,11 +18,7 @@
extern struct list_head list_change_du_state; extern struct list_head list_change_du_state;
extern struct list_head du_uuid_list; extern struct list_head du_uuid_list;
int cwmp_du_install(char *url, char *uuid, char *user, char *pass, char *path, char *env_ref, char **fault_code);
int cwmp_du_update(char *url, char *user, char *pass, char *du_path, char **fault_code);
int cwmp_du_uninstall(char *du_path, char **fault_code);
int cwmp_rpc_acs_destroy_data_du_state_change_complete(struct rpc *rpc); int cwmp_rpc_acs_destroy_data_du_state_change_complete(struct rpc *rpc);
void *thread_cwmp_rpc_cpe_change_du_state(void *v);
int cwmp_free_change_du_state_request(struct change_du_state *change_du_state); int cwmp_free_change_du_state_request(struct change_du_state *change_du_state);
void change_du_state_execute(struct uloop_timeout *utimeout); void change_du_state_execute(struct uloop_timeout *utimeout);
void apply_change_du_state(); void apply_change_du_state();

View file

@ -1,5 +1,6 @@
#ifndef CWMP_EVENT_H #ifndef CWMP_EVENT_H
#define CWMP_EVENT_H #define CWMP_EVENT_H
#include "event.h" #include "event.h"
struct event_container *cwmp_add_event_container(int event_code, char *command_key); struct event_container *cwmp_add_event_container(int event_code, char *command_key);
void move_next_session_events_to_actual_session(); void move_next_session_events_to_actual_session();

View file

@ -1,7 +1,7 @@
#ifndef CWMP_HTTP_H #ifndef CWMP_HTTP_H
#define CWMP_HTTP_H #define CWMP_HTTP_H
#include "http.h" #include "http.h"
extern pthread_t http_cr_server_thread;
void http_server_start(void); void http_server_start(void);
void http_server_stop(void); void http_server_stop(void);

View file

@ -22,6 +22,8 @@
#include "http.h" #include "http.h"
#include "cwmp_event.h" #include "cwmp_event.h"
static void cwmp_heartbeat_session_timer(struct uloop_timeout *timeout);
struct uloop_timeout heartbeat_session_timer = { .cb = cwmp_heartbeat_session_timer }; struct uloop_timeout heartbeat_session_timer = { .cb = cwmp_heartbeat_session_timer };
long int cwmp_heartbeat_session_time(void) long int cwmp_heartbeat_session_time(void)

View file

@ -15,7 +15,6 @@
extern struct uloop_timeout heartbeat_session_timer; extern struct uloop_timeout heartbeat_session_timer;
void cwmp_heartbeat_session_timer(struct uloop_timeout *timeout);
void intiate_heartbeat_procedures(); void intiate_heartbeat_procedures();
void reinit_heartbeat_procedures(); void reinit_heartbeat_procedures();

View file

@ -25,7 +25,6 @@ int icwmp_http_client_init();
void icwmp_http_client_exit(void); void icwmp_http_client_exit(void);
int icwmp_http_send_message(char *msg_out, int msg_out_len, char **msg_in); int icwmp_http_send_message(char *msg_out, int msg_out_len, char **msg_in);
int http_cr_server_init(void);
void icwmp_http_server_listen(void); void icwmp_http_server_listen(void);
void icwmp_http_server_init(void); void icwmp_http_server_init(void);
#endif #endif

View file

@ -28,6 +28,13 @@ LIST_HEAD(list_value_change);
LIST_HEAD(list_lw_value_change); LIST_HEAD(list_lw_value_change);
LIST_HEAD(list_param_obj_notify); LIST_HEAD(list_param_obj_notify);
static void create_list_param_leaf_notify(struct list_head *, void (*fp)(FILE *, char *, char *, char *, int), FILE*);
static void send_active_value_change(void);
static void add_list_value_change(char *param_name, char *param_data, char *param_type);
static void add_lw_list_value_change(char *param_name, char *param_data, char *param_type);
static void cwmp_lwnotification(void);
static void periodic_check_notifiy(struct uloop_timeout *timeout __attribute__((unused)));
struct uloop_timeout check_notify_timer = { .cb = periodic_check_notifiy }; struct uloop_timeout check_notify_timer = { .cb = periodic_check_notifiy };
char *supported_notification_types[7] = {"disabled" , "passive", "active", "passive_lw", "passive_passive_lw", "active_lw", "passive_active_lw"}; char *supported_notification_types[7] = {"disabled" , "passive", "active", "passive_lw", "passive_passive_lw", "active_lw", "passive_active_lw"};

View file

@ -38,28 +38,18 @@ extern struct uloop_timeout check_notify_timer;
#define DM_ENABLED_NOTIFY "/var/run/icwmpd/dm_enabled_notify" #define DM_ENABLED_NOTIFY "/var/run/icwmpd/dm_enabled_notify"
#define NOTIFY_MARKER "/etc/icwmpd/icwmpd_notify_import_marker" #define NOTIFY_MARKER "/etc/icwmpd/icwmpd_notify_import_marker"
#define RUN_NOTIFY_MARKER "/var/run/icwmpd/icwmpd_notify_import_marker" #define RUN_NOTIFY_MARKER "/var/run/icwmpd/icwmpd_notify_import_marker"
int create_cwmp_notifications_package();
void ubus_check_value_change_callback(struct ubus_request *req, int type, struct blob_attr *msg);
void cwmp_update_enabled_notify_file(void); void cwmp_update_enabled_notify_file(void);
int check_value_change(void); int check_value_change(void);
void create_list_param_obj_notify();
void create_list_param_leaf_notify();
void sotfware_version_value_change(struct transfer_complete *p); void sotfware_version_value_change(struct transfer_complete *p);
void *thread_periodic_check_notify(void *v);
void send_active_value_change(void);
void add_list_value_change(char *param_name, char *param_data, char *param_type);
void clean_list_value_change(); void clean_list_value_change();
char *cwmp_set_parameter_attributes(char *parameter_name, int notification); char *cwmp_set_parameter_attributes(char *parameter_name, int notification);
char *cwmp_get_parameter_attributes(char *parameter_name, struct list_head *parameters_list); char *cwmp_get_parameter_attributes(char *parameter_name, struct list_head *parameters_list);
void load_custom_notify_json(void); void load_custom_notify_json(void);
void set_default_forced_active_parameters_notifications(); void set_default_forced_active_parameters_notifications();
void add_lw_list_value_change(char *param_name, char *param_data, char *param_type);
char *calculate_lwnotification_cnonce(); char *calculate_lwnotification_cnonce();
void cwmp_lwnotification();
void clean_list_param_notify(); void clean_list_param_notify();
void init_list_param_notify(); void init_list_param_notify();
void reinit_list_param_notify(); void reinit_list_param_notify();
void cwmp_prepare_value_change(); void cwmp_prepare_value_change();
void periodic_check_notifiy(struct uloop_timeout *timeout __attribute__((unused)));
void trigger_periodic_notify_check(); void trigger_periodic_notify_check();
#endif /* SRC_INC_NOTIFICATIONS_H_ */ #endif /* SRC_INC_NOTIFICATIONS_H_ */

View file

@ -32,6 +32,29 @@
#define PROCESSING_DELAY (1) // In download/upload the message enqueued before sending the response, which cause the download/upload #define PROCESSING_DELAY (1) // In download/upload the message enqueued before sending the response, which cause the download/upload
// to start just before the time. This delay is to compensate the time lapsed during the message enqueue and response // to start just before the time. This delay is to compensate the time lapsed during the message enqueue and response
static int cwmp_handle_rpc_cpe_get_rpc_methods(struct rpc *rpc);
static int cwmp_handle_rpc_cpe_set_parameter_values(struct rpc *rpc);
static int cwmp_handle_rpc_cpe_get_parameter_names(struct rpc *rpc);
static int cwmp_handle_rpc_cpe_reboot(struct rpc *rpc);
static int cwmp_handle_rpc_cpe_download(struct rpc *rpc);
static int cwmp_handle_rpc_cpe_upload(struct rpc *rpc);
static int cwmp_handle_rpc_cpe_factory_reset(struct rpc *rpc);
static int cwmp_handle_rpc_cpe_x_factory_reset_soft(struct rpc *rpc);
static int cancel_transfer(char *key);
static int cwmp_handle_rpc_cpe_cancel_transfer(struct rpc *rpc);
static int cwmp_handle_rpc_cpe_schedule_inform(struct rpc *rpc);
static int cwmp_handle_rpc_cpe_schedule_download(struct rpc *rpc);
static int cwmp_handle_rpc_cpe_change_du_state(struct rpc *rpc);
static int cwmp_handle_rpc_cpe_fault(struct rpc *rpc);
static int cwmp_create_fault_message(struct rpc *rpc_cpe, int fault_code, char *fault_msg);
static int cwmp_rpc_acs_parse_response_inform(struct rpc *rpc);
static int cwmp_rpc_acs_parse_response_get_rpc_methods(struct rpc *this);
static int cwmp_rpc_acs_prepare_get_rpc_methods(struct rpc *rpc);
static int cwmp_rpc_acs_prepare_transfer_complete(struct rpc *rpc);
static int cwmp_rpc_acs_prepare_du_state_change_complete(struct rpc *rpc);
static int cwmp_rpc_acs_prepare_autonomous_du_state_change_complete(struct rpc *rpc);
static int cwmp_rpc_acs_prepare_autonomous_transfer_complete(struct rpc *rpc);
struct cwmp_namespaces ns; struct cwmp_namespaces ns;
const struct rpc_cpe_method rpc_cpe_methods[] = { const struct rpc_cpe_method rpc_cpe_methods[] = {
[RPC_CPE_GET_RPC_METHODS] = { "GetRPCMethods", cwmp_handle_rpc_cpe_get_rpc_methods, AMD_1 }, [RPC_CPE_GET_RPC_METHODS] = { "GetRPCMethods", cwmp_handle_rpc_cpe_get_rpc_methods, AMD_1 },

View file

@ -20,37 +20,13 @@
extern const struct rpc_cpe_method rpc_cpe_methods[__RPC_CPE_MAX]; extern const struct rpc_cpe_method rpc_cpe_methods[__RPC_CPE_MAX];
extern struct rpc_acs_method rpc_acs_methods[__RPC_ACS_MAX]; extern struct rpc_acs_method rpc_acs_methods[__RPC_ACS_MAX];
int cwmp_handle_rpc_cpe_get_rpc_methods(struct rpc *rpc);
int cwmp_handle_rpc_cpe_set_parameter_values(struct rpc *rpc);
int cwmp_handle_rpc_cpe_get_parameter_values(struct rpc *rpc); int cwmp_handle_rpc_cpe_get_parameter_values(struct rpc *rpc);
int cwmp_handle_rpc_cpe_get_parameter_names(struct rpc *rpc);
int cwmp_handle_rpc_cpe_set_parameter_attributes(struct rpc *rpc); int cwmp_handle_rpc_cpe_set_parameter_attributes(struct rpc *rpc);
int cwmp_handle_rpc_cpe_get_parameter_attributes(struct rpc *rpc); int cwmp_handle_rpc_cpe_get_parameter_attributes(struct rpc *rpc);
int cwmp_handle_rpc_cpe_add_object(struct rpc *rpc); int cwmp_handle_rpc_cpe_add_object(struct rpc *rpc);
int cwmp_handle_rpc_cpe_delete_object(struct rpc *rpc); int cwmp_handle_rpc_cpe_delete_object(struct rpc *rpc);
int cwmp_handle_rpc_cpe_reboot(struct rpc *rpc);
int cwmp_handle_rpc_cpe_download(struct rpc *rpc);
int cwmp_handle_rpc_cpe_upload(struct rpc *rpc);
int cwmp_handle_rpc_cpe_factory_reset(struct rpc *rpc);
int cwmp_handle_rpc_cpe_x_factory_reset_soft(struct rpc *rpc);
int cancel_transfer(char *key);
int cwmp_handle_rpc_cpe_cancel_transfer(struct rpc *rpc);
int cwmp_handle_rpc_cpe_schedule_inform(struct rpc *rpc);
int cwmp_handle_rpc_cpe_schedule_download(struct rpc *rpc);
int cwmp_handle_rpc_cpe_change_du_state(struct rpc *rpc);
int cwmp_handle_rpc_cpe_fault(struct rpc *rpc);
int cwmp_rpc_acs_prepare_message_inform(struct rpc *rpc); int cwmp_rpc_acs_prepare_message_inform(struct rpc *rpc);
int cwmp_rpc_acs_parse_response_inform(struct rpc *rpc);
int cwmp_rpc_acs_parse_response_get_rpc_methods(struct rpc *this);
int cwmp_rpc_acs_prepare_get_rpc_methods(struct rpc *rpc);
int cwmp_rpc_acs_prepare_transfer_complete(struct rpc *rpc);
int cwmp_rpc_acs_prepare_du_state_change_complete(struct rpc *rpc);
int cwmp_rpc_acs_prepare_autonomous_du_state_change_complete(struct rpc *rpc);
int cwmp_rpc_acs_prepare_autonomous_transfer_complete(struct rpc *rpc);
int xml_handle_message(); int xml_handle_message();
int cwmp_create_fault_message(struct rpc *rpc_cpe, int fault_code, char *fault_msg);
void load_default_forced_inform(void); void load_default_forced_inform(void);
void clean_force_inform_list(void); void clean_force_inform_list(void);
void load_forced_inform_json(void); void load_forced_inform_json(void);

View file

@ -11,7 +11,9 @@
#ifndef CWMP_SCHED_INFORM_H #ifndef CWMP_SCHED_INFORM_H
#define CWMP_SCHED_INFORM_H #define CWMP_SCHED_INFORM_H
#include "common.h" #include "common.h"
extern struct list_head list_schedule_inform; extern struct list_head list_schedule_inform;
extern int count_schedule_inform_queue; extern int count_schedule_inform_queue;

View file

@ -35,14 +35,19 @@
#include "cwmp_http.h" #include "cwmp_http.h"
#include "uci_utils.h" #include "uci_utils.h"
static struct rpc *cwmp_add_session_rpc_acs_head(int type);
static int cwmp_session_rpc_destructor(struct rpc *rpc);
static int run_session_end_func(void);
static void cwmp_schedule_session(struct uloop_timeout *timeout);
static void cwmp_schedule_throttle_session(struct uloop_timeout *timeout __attribute__((unused)));
static void set_cwmp_session_status(int status, int retry_time);
static int cwmp_schedule_rpc(void);
static void cwmp_periodic_session_timer(struct uloop_timeout *timeout); static void cwmp_periodic_session_timer(struct uloop_timeout *timeout);
struct uloop_timeout session_timer = { .cb = cwmp_schedule_session }; struct uloop_timeout session_timer = { .cb = cwmp_schedule_session };
struct uloop_timeout periodic_session_timer = { .cb = cwmp_periodic_session_timer }; struct uloop_timeout periodic_session_timer = { .cb = cwmp_periodic_session_timer };
struct uloop_timeout retry_session_timer = { .cb = cwmp_schedule_session }; struct uloop_timeout retry_session_timer = { .cb = cwmp_schedule_session };
struct uloop_timeout throttle_session_timer = { .cb = cwmp_schedule_throttle_session }; struct uloop_timeout throttle_session_timer = { .cb = cwmp_schedule_throttle_session };
struct uloop_timeout restart_timer = { .cb = cwmp_restart_service };
unsigned int end_session_flag = 0; unsigned int end_session_flag = 0;
@ -791,8 +796,3 @@ int run_session_end_func(void)
end_session_flag = 0; end_session_flag = 0;
return CWMP_OK; return CWMP_OK;
} }
void trigger_cwmp_restart_timer(void)
{
uloop_timeout_set(&restart_timer, 10);
}

View file

@ -94,24 +94,16 @@ void cwmp_set_end_session(unsigned int flag);
void cwmp_clear_end_session(unsigned int flag); void cwmp_clear_end_session(unsigned int flag);
struct rpc *build_sessin_rcp_cpe(int type); struct rpc *build_sessin_rcp_cpe(int type);
struct rpc *cwmp_add_session_rpc_acs(int type); struct rpc *cwmp_add_session_rpc_acs(int type);
struct rpc *cwmp_add_session_rpc_acs_head(int type);
int cwmp_session_rpc_destructor(struct rpc *rpc);
void trigger_cwmp_session_timer(); void trigger_cwmp_session_timer();
void trigger_cwmp_throttle_session_timer(unsigned int delay); void trigger_cwmp_throttle_session_timer(unsigned int delay);
void trigger_session_by_ubus(char *event);
void initiate_cwmp_periodic_session_feature(); void initiate_cwmp_periodic_session_feature();
int run_session_end_func(void);
void cwmp_schedule_session(struct uloop_timeout *timeout);
void cwmp_schedule_throttle_session(struct uloop_timeout *timeout __attribute__((unused)));
void cwmp_schedule_session_with_event(struct uloop_timeout *timeout); void cwmp_schedule_session_with_event(struct uloop_timeout *timeout);
void trigger_cwmp_session_timer_with_event(struct uloop_timeout *timeout); void trigger_cwmp_session_timer_with_event(struct uloop_timeout *timeout);
void start_cwmp_session(); void start_cwmp_session();
int create_cwmp_session_structure(); int create_cwmp_session_structure();
int clean_cwmp_session_structure(); int clean_cwmp_session_structure();
void set_cwmp_session_status(int status, int retry_time);
int cwmp_session_init(); int cwmp_session_init();
int cwmp_session_exit(); int cwmp_session_exit();
int cwmp_schedule_rpc();
int cwmp_apply_acs_changes(void); int cwmp_apply_acs_changes(void);
void rpc_exit(); void rpc_exit();
void trigger_cwmp_restart_timer(void); void trigger_cwmp_restart_timer(void);

View file

@ -18,6 +18,8 @@
#define END_TASK "{\"task\":\"end\"}" #define END_TASK "{\"task\":\"end\"}"
#define EXIT_TASK "{\"task\":\"exit\"}" #define EXIT_TASK "{\"task\":\"exit\"}"
typedef char* (*task_function)(char *task_arg);
static int pipefd1[2], pipefd2[2]; static int pipefd1[2], pipefd2[2];
bool check_task_name(char *task, char *name) bool check_task_name(char *task, char *name)

View file

@ -24,6 +24,8 @@ static bool g_bbf_object_available = false;
static struct ubus_context *ubus_ctx = NULL; static struct ubus_context *ubus_ctx = NULL;
struct uloop_timeout u_timeout; struct uloop_timeout u_timeout;
static int icwmp_register_object(struct ubus_context *ctx);
struct command_cb { struct command_cb {
char *str; char *str;
callback cb; callback cb;
@ -382,11 +384,6 @@ int icwmp_register_object(struct ubus_context *ctx)
return ubus_add_object(ctx, &tr069_object); return ubus_add_object(ctx, &tr069_object);
} }
int icwmp_delete_object(struct ubus_context *ctx)
{
return ubus_remove_object(ctx, &tr069_object);
}
void bb_add_string(struct blob_buf *bb, const char *name, const char *value) void bb_add_string(struct blob_buf *bb, const char *name, const char *value)
{ {
if (bb == NULL) if (bb == NULL)

View file

@ -15,10 +15,7 @@
#include "common.h" #include "common.h"
typedef void (*icwmp_ubus_cb)(struct ubus_request *req, int type, struct blob_attr *msg); typedef void (*icwmp_ubus_cb)(struct ubus_request *req, int type, struct blob_attr *msg);
void bb_add_string(struct blob_buf *bb, const char *name, const char *value); void bb_add_string(struct blob_buf *bb, const char *name, const char *value);
int icwmp_register_object(struct ubus_context *ctx);
int icwmp_delete_object(struct ubus_context *ctx);
int icwmp_ubus_invoke(const char *obj, const char *method, struct blob_attr *msg, int icwmp_ubus_invoke(const char *obj, const char *method, struct blob_attr *msg,
icwmp_ubus_cb icwmp_callback, void *callback_arg); icwmp_ubus_cb icwmp_callback, void *callback_arg);
int icwmp_uloop_ubus_register(void); int icwmp_uloop_ubus_register(void);

View file

@ -24,6 +24,8 @@
#define CURL_TIMEOUT 30 #define CURL_TIMEOUT 30
static int cwmp_launch_upload(struct upload *pupload, struct transfer_complete **ptransfer_complete);
int count_upload_queue = 0; int count_upload_queue = 0;
LIST_HEAD(list_upload); LIST_HEAD(list_upload);

View file

@ -19,8 +19,6 @@
extern struct list_head list_upload; extern struct list_head list_upload;
extern int count_upload_queue; extern int count_upload_queue;
int cwmp_launch_upload(struct upload *pupload, struct transfer_complete **ptransfer_complete);
void *thread_cwmp_rpc_cpe_upload(void *v);
int cwmp_scheduledUpload_remove_all(); int cwmp_scheduledUpload_remove_all();
int cwmp_free_upload_request(struct upload *upload); int cwmp_free_upload_request(struct upload *upload);
void cwmp_start_upload(struct uloop_timeout *timeout); void cwmp_start_upload(struct uloop_timeout *timeout);

View file

@ -30,6 +30,26 @@ char *g_tab_space = NULL;
const char *cwmp_urls[] = { "urn:dslforum-org:cwmp-1-0", "urn:dslforum-org:cwmp-1-1", "urn:dslforum-org:cwmp-1-2", "urn:dslforum-org:cwmp-1-2", "urn:dslforum-org:cwmp-1-2", "urn:dslforum-org:cwmp-1-2", NULL }; const char *cwmp_urls[] = { "urn:dslforum-org:cwmp-1-0", "urn:dslforum-org:cwmp-1-1", "urn:dslforum-org:cwmp-1-2", "urn:dslforum-org:cwmp-1-2", "urn:dslforum-org:cwmp-1-2", "urn:dslforum-org:cwmp-1-2", NULL };
static void load_notification_xml_schema(mxml_node_t **tree);
static int load_upload_filetype(mxml_node_t *b, struct xml_data_struct *xml_attrs);
static int load_backup_event_command_key(mxml_node_t *b, struct xml_data_struct *xml_attrs);
static int load_backup_event_parameter(mxml_node_t *b, struct xml_data_struct *xml_attrs);
static int load_get_rpc_method_acs_resp_string(mxml_node_t *b, struct xml_data_struct *xml_attrs);
static int load_download_filetype(mxml_node_t *b, struct xml_data_struct *xml_attrs);
static int load_sched_download_window_mode(mxml_node_t *b, struct xml_data_struct *xml_attrs);
static int load_change_du_state_operation(mxml_node_t *b, struct xml_data_struct *xml_attrs);
static int load_cdu_backup_operation(mxml_node_t *b, struct xml_data_struct *xml_attrs);
static int load_cdu_complete_backup_operation(mxml_node_t *b, struct xml_data_struct *xml_attrs);
static int build_inform_events(mxml_node_t *b, struct xml_data_struct *xml_attrs);
static int build_inform_env_header(mxml_node_t *b, struct xml_data_struct *xml_attrs);
static int build_parameter_structure(mxml_node_t *param_list, struct xml_data_struct *xml_attrs);
static int build_backup_cdu_option(mxml_node_t *cdu, struct xml_data_struct *xml_attrs);
static int get_soap_enc_array_type(mxml_node_t *node, struct xml_data_struct *xml_attrs);
static char *get_xml_node_name_switch(char *node_name);
static char *get_xml_node_name_by_switch_name(char *switch_node_name);
static const char *whitespace_cb(mxml_node_t *node, int where);
static const char *get_node_tab_space(mxml_node_t *node);
struct xml_node_data xml_nodes_data[] = { struct xml_node_data xml_nodes_data[] = {
/* /*
* SOAP Requests * SOAP Requests

View file

@ -316,7 +316,6 @@ char *xml__get_attribute_name_by_value(mxml_node_t *node, const char *value);
char *xml_get_cwmp_version(int version); char *xml_get_cwmp_version(int version);
void xml_exit(void); void xml_exit(void);
void load_response_xml_schema(mxml_node_t **schema); void load_response_xml_schema(mxml_node_t **schema);
void load_notification_xml_schema(mxml_node_t **tree);
int load_xml_node_data(int node_ref, mxml_node_t *node, struct xml_data_struct *xml_attrs); int load_xml_node_data(int node_ref, mxml_node_t *node, struct xml_data_struct *xml_attrs);
int build_xml_node_data(int node_ref, mxml_node_t *node, struct xml_data_struct *xml_attrs); int build_xml_node_data(int node_ref, mxml_node_t *node, struct xml_data_struct *xml_attrs);
void add_xml_data_list(struct list_head *data_list, struct xml_list_data *xml_data); void add_xml_data_list(struct list_head *data_list, struct xml_list_data *xml_data);
@ -330,22 +329,4 @@ void cdu_operations_list_to_xml_data_list(struct list_head *du_op_list, struct l
void event_container_list_to_xml_data_list(struct list_head *event_container, struct list_head *xml_data_list); void event_container_list_to_xml_data_list(struct list_head *event_container, struct list_head *xml_data_list);
void cwmp_param_fault_list_to_xml_data_list(struct list_head *param_fault_list, struct list_head *xml_data_list); void cwmp_param_fault_list_to_xml_data_list(struct list_head *param_fault_list, struct list_head *xml_data_list);
void cwmp_free_all_xml_data_list(struct list_head *list); void cwmp_free_all_xml_data_list(struct list_head *list);
int load_upload_filetype(mxml_node_t *b, struct xml_data_struct *xml_attrs);
int load_backup_event_command_key(mxml_node_t *b, struct xml_data_struct *xml_attrs);
int load_backup_event_parameter(mxml_node_t *b, struct xml_data_struct *xml_attrs);
int load_get_rpc_method_acs_resp_string(mxml_node_t *b, struct xml_data_struct *xml_attrs);
int load_download_filetype(mxml_node_t *b, struct xml_data_struct *xml_attrs);
int load_sched_download_window_mode(mxml_node_t *b, struct xml_data_struct *xml_attrs);
int load_change_du_state_operation(mxml_node_t *b, struct xml_data_struct *xml_attrs);
int load_cdu_backup_operation(mxml_node_t *b, struct xml_data_struct *xml_attrs);
int load_cdu_complete_backup_operation(mxml_node_t *b, struct xml_data_struct *xml_attrs);
int build_inform_events(mxml_node_t *b, struct xml_data_struct *xml_attrs);
int build_inform_env_header(mxml_node_t *b, struct xml_data_struct *xml_attrs);
int build_parameter_structure(mxml_node_t *param_list, struct xml_data_struct *xml_attrs);
int build_backup_cdu_option(mxml_node_t *cdu, struct xml_data_struct *xml_attrs);
int get_soap_enc_array_type(mxml_node_t *node, struct xml_data_struct *xml_attrs);
char *get_xml_node_name_switch(char *node_name);
char *get_xml_node_name_by_switch_name(char *switch_node_name);
const char *whitespace_cb(mxml_node_t *node, int where);
const char *get_node_tab_space(mxml_node_t *node);
#endif #endif