mirror of
https://dev.iopsys.eu/bbf/icwmp.git
synced 2026-02-15 12:29:11 +01:00
Extract end_session_flag from bbf to icwmp
This commit is contained in:
parent
bc7a4695ff
commit
aaa92cbda4
3 changed files with 29 additions and 0 deletions
8
cwmp.c
8
cwmp.c
|
|
@ -29,6 +29,14 @@
|
|||
struct cwmp cwmp_main = {0};
|
||||
char *commandKey = NULL;
|
||||
|
||||
#ifndef TR098
|
||||
unsigned int end_session_flag = 0;
|
||||
|
||||
void cwmp_set_end_session(unsigned int flag)
|
||||
{
|
||||
end_session_flag |= flag;
|
||||
}
|
||||
#endif
|
||||
int cwmp_dm_ctx_init(struct cwmp *cwmp, struct dmctx *ctx)
|
||||
{
|
||||
if(cwmp->conf.supported_amd_version == 0)
|
||||
|
|
|
|||
19
inc/cwmp.h
19
inc/cwmp.h
|
|
@ -27,6 +27,7 @@
|
|||
#include <libbbfdm/dmentry.h>
|
||||
#include <libbbfdm/dmbbfcommon.h>
|
||||
#include <libbbfdm/dmdiagnostics.h>
|
||||
extern unsigned int end_session_flag;
|
||||
#endif
|
||||
|
||||
#define MAX_EVENTS 64
|
||||
|
|
@ -115,6 +116,21 @@ enum event_type_enum {
|
|||
EVENT_TYPE_MULTIPLE = 0x1
|
||||
};
|
||||
|
||||
enum end_session_enum {
|
||||
END_SESSION_REBOOT = 1,
|
||||
END_SESSION_EXTERNAL_ACTION = 1<<1,
|
||||
END_SESSION_RELOAD = 1<<2,
|
||||
END_SESSION_FACTORY_RESET = 1<<3,
|
||||
END_SESSION_IPPING_DIAGNOSTIC = 1<<4,
|
||||
END_SESSION_DOWNLOAD_DIAGNOSTIC = 1<<5,
|
||||
END_SESSION_UPLOAD_DIAGNOSTIC = 1<<6,
|
||||
END_SESSION_X_FACTORY_RESET_SOFT = 1<<7,
|
||||
END_SESSION_NSLOOKUP_DIAGNOSTIC = 1<<8,
|
||||
END_SESSION_TRACEROUTE_DIAGNOSTIC = 1<<9,
|
||||
END_SESSION_UDPECHO_DIAGNOSTIC = 1<<10,
|
||||
END_SESSION_SERVERSELECTION_DIAGNOSTIC = 1<<11
|
||||
};
|
||||
|
||||
enum event_idx_enum {
|
||||
EVENT_IDX_0BOOTSTRAP,
|
||||
EVENT_IDX_1BOOT,
|
||||
|
|
@ -322,4 +338,7 @@ int cwmp_init(int argc, char** argv,struct cwmp *cwmp);
|
|||
int cwmp_exit(void);
|
||||
void add_list_value_change(char *param_name, char *param_data, char *param_type);
|
||||
void send_active_value_change(void);
|
||||
#ifndef TR098
|
||||
void cwmp_set_end_session(unsigned int flag);
|
||||
#endif
|
||||
#endif /* _CWMP_H__ */
|
||||
|
|
|
|||
2
xml.c
2
xml.c
|
|
@ -1562,6 +1562,7 @@ int cwmp_handle_rpc_cpe_set_parameter_values(struct session *session, struct rpc
|
|||
}
|
||||
if (parameter_name && parameter_value) {
|
||||
int e = dm_entry_param_method(&dmctx, CMD_SET_VALUE, parameter_name, parameter_value, NULL);
|
||||
cwmp_set_end_session(dmctx.end_session_flag);
|
||||
if (e) {
|
||||
fault_code = FAULT_CPE_INVALID_ARGUMENTS;
|
||||
}
|
||||
|
|
@ -1684,6 +1685,7 @@ int cwmp_handle_rpc_cpe_set_parameter_attributes(struct session *session, struct
|
|||
}
|
||||
if (attr_notification_update && parameter_name && parameter_notification) {
|
||||
int e = dm_entry_param_method(&dmctx, CMD_SET_NOTIFICATION, parameter_name, parameter_notification, attr_notification_update);
|
||||
cwmp_set_end_session(dmctx.end_session_flag);
|
||||
if (e) {
|
||||
fault_code = cwmp_get_fault_code(e);
|
||||
goto fault;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue