[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit
Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/ap/app/goahead/interface5.0/zte_web_interface.h b/ap/app/goahead/interface5.0/zte_web_interface.h
new file mode 100755
index 0000000..7027a03
--- /dev/null
+++ b/ap/app/goahead/interface5.0/zte_web_interface.h
@@ -0,0 +1,1118 @@
+/**
+ * @file zte_web_interface.h
+ * @brief Public APIs of Sanechips
+ *
+ * Copyright (C) 2017 Sanechips Technology Co., Ltd.
+ * @author Hong Wu <wu.hong@sanechips.com.cn>
+ * @defgroup si_ap_app_webserver_id si_ap_app_webserver
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ */
+
+
+#ifndef ZTE_WEB_INTERFACE_H
+#define ZTE_WEB_INTERFACE_H
+
+/*******************************************************************************
+ * Include header files *
+ ******************************************************************************/
+#include <time.h>
+#include "../server/webs.h"
+#include "message.h"
+//#include "errorcode.h"
+#include "cfg_nv_def.h"
+#include "cfg_api.h"
+#include "zte_web_mgmt.h"
+#include <sys/ipc.h>
+#include <sys/msg.h>
+#include "softap_api.h"
+#include "netotherapi.h"
+#include "net/zte_web_net_lan.h"
+#include "net/zte_web_net_wan.h"
+#include "net/zte_web_net_other.h"
+
+/*******************************************************************************
+ * Macro definitions *
+ ******************************************************************************/
+#define cprintf(fmt, args...) do { \
+ FILE *fp = fopen("/dev/console", "w"); \
+ if (fp) { \
+ fprintf(fp, fmt, ## args); \
+ fclose(fp); \
+ } \
+} while (0)
+
+#define WEBLOG cprintf
+#define IFSTREQUAL(str1, str2) (strcmp((str1), (str2))?0:1)
+#define STR_EQUAL(a,b) ( strcmp((char*)a, (char*)b)==0 )
+#ifndef uint8
+#define uint8 unsigned char
+#endif
+
+#define ID "id"
+#define NAME "name"
+#define SITE "site"
+#define SUCCESS "success"
+#define FAILURE "failure"
+#define EXIST "exist"
+#define NOEXIST "noexist"
+#define PROCESSING "processing"
+#define MSG_INVALID_WEB_PARAM "MSG_INVALID_WEB_PARAM"
+#define ZTE_MC_OK_S (0)
+
+#define CFG_BUF_LENGTH 512
+#define CONFIG_DEFAULT_LENGTH 64
+
+#define DIAGLOG_DATA_PATH "/etc_ro/web/diaglog"
+
+/*** define about NV ***/
+#define NV_ITEM_VALUE_DEFAULT_STRING_LEN 128
+#define NV_ITEM_VALUE_BOOLEAN_LEN 1
+#define NV_ITEM_VALUE_YES_NO_LEN 5
+#define NV_ITEM_VALUE_IP_LEN 20
+#define NV_ITEM_MODE_STRING_LEN 25
+#define NV_ITEM_ADMIN_STRING_LEN 25
+#define NV_ITEM_VALUE_APN_STRING_LEN 400
+#define NV_ITEM_VALUE_NW_LIST_STRING_LEN 700
+#define NV_ITEM_STRING_LEN_5 5
+#define NV_ITEM_STRING_LEN_10 10
+#define NV_ITEM_STRING_LEN_20 20
+#define NV_ITEM_STRING_LEN_50 50
+#define NV_ITEM_STRING_LEN_64 64
+#define NV_ITEM_STRING_LEN_150 150
+#define NV_ITEM_STRING_LEN_200 200
+#define NV_FW_RULE_MAX_LEN_V6 400
+#define NV_ITEM_VALUE_STRING_LEN 50
+#define NVIO_MAX_LEN 1500
+#define NVIO_TMP_LEN 512
+#define NVIO_DEFAULT_LEN 50
+#define NV_ITEM_VALUE_STRING_LEN 50
+#define NV_ITEM_VALUE_MAX_LEN 1024
+#define zte_web_write(xx_item, xx_value) zte_nvconfig_write(xx_item, xx_value,(int)strlen(xx_value))
+#define zte_web_read(xx_item, xx_value) zte_nvconfig_read(xx_item, xx_value,sizeof(xx_value)) //modified,-1 deleted
+
+/*webuiÕʺÅ*/
+#define LOGIN_SUCCESS "0"
+#define LOGIN_FAIL "1"
+#define LOGIN_DUPLICATE_USER "2"
+#define LOGIN_BAD_PASSWORD "3"
+#define LOGIN_ALREADY_LOGGED "4"
+#define LOGIN_USER_NAME_NOT_EXSIT "5"
+#define LOGIN_TIMEOUT 600 //timeout after webui login
+#define LOGIN_PSW_MIN_LEN 1
+#define LOGIN_PSW_MAX_LEN 32
+#define LOGIN_FAIL_LOCK_TIME 300//the lock time after login failed
+#define LOGIN_FAIL_TIMES "5"
+#define LOGIN_RECORD_TIME 32
+
+#define COOKIE_SESSION_SIZE 32
+#define COOKIE_TOKEN_TIMEOUT 30
+
+#define NV_LANGUAGE "Language"
+#define NV_LOGINFO "loginfo"
+#define NV_USER_IP_ADDR "user_ip_addr"
+#define NV_LOGIN_LOCK_TIME "login_lock_time"
+#define NV_LAST_LOGIN_TIME "last_login_time"
+#define NV_USER_LOGIN_TIMEMARK "user_login_timemark"
+#define NV_COOKIE_ID "cookie_id"
+#define NV_WEB_TOKEN "web_token"
+
+/* ¿ìËÙÉèÖà */
+#define MAX_QUICK_SET_NUM 10
+
+/*Á÷Á¿Í³¼Æ*/
+#define ZTE_WEB_DATA_STATISTICS_CLEAR_ALL "ALL"
+#define ZTE_WEB_DATA_STATISTICS_CLEAR_TOTAL "TOTAL"
+#define ZTE_WEB_DATA_STATISTICS_CLEAR_CURRENT "CURRENT"
+
+
+
+//wan module
+#define ZTE_DAILNUM_LEN 8
+#define ZTE_ADDR_LEN 16
+#define ZTE_SEL_TYPE 8
+#define ZTE_PDP_TYPE_LEN 12
+#define ZTE_AUTH_TYPE_LEN 8
+#define ZTE_WAN_UMTS_MAX_PROFILE_NAME_LEN 32
+#define ZTE_WAN_UMTS_MAX_APN_STRING_LEN 104
+#define ZTE_WAN_UMTS_MAX_USERNAME_STRING_LEN 65
+#define ZTE_WAN_UMTS_MAX_PASSWD_STRING_LEN 65
+#define ZTE_USSD_DATA_TO_WEB_LEN 900
+#define CMD_CONNECTION_MODE "ConnectionMode"
+
+//pbm module
+#define CMD_PBM_DATA_INFO "pbm_data_info"
+#define CMD_PBM_DATA_TOTAL "pbm_data_total"
+#define CMD_PBM_CAPACITY_INFO "pbm_capacity_info"
+
+//sms module
+#define CMD_SMS_PAGE_DATA "sms_page_data"
+#define CMD_SMS_PARAMETER_INFO "sms_parameter_info"
+#define CMD_SMS_STATUS_INFO "sms_cmd_status_info"
+#define CMD_SMS_CAPACITY_INFO "sms_capacity_info"
+#define CMD_SMS_STATUS_RPT_DATA "sms_status_rpt_data"
+#define CMD_SMS_DATA_TOTAL "sms_data_total"
+#define CMD_SMS_UNREAD_COUNT "sms_unread_count"
+#define CMD_BROADCAST_DATA "broadcast_data"
+#define NV_SMS_UNREAD_NUM "sms_unread_num"
+
+//APN
+#define APN_SAVE_AND_SET_DEFAULT "0"
+#define APN_ONLY_SET_DEFAULT "1"
+#define ZTE_WEB_ACT_AUTO "auto"
+#define ZTE_WEB_ACT_MANUAL "manual"
+#define ZTE_WEB_ACT_SAVE "save"
+#define ZTE_WEB_ACT_SETDEFAULT "set_default"
+#define ZTE_WEB_ACT_SAVE_AND_SETDEFAULT "set_save_and_default"
+#define ZTE_WEB_ACT_DELETE "delete"
+#define ZTE_WEB_DIAL_MODE_AUTO "auto_dial"
+#define ZTE_WEB_DIAL_MODE_MANUAL "manual_dial"
+#define ZTE_WEB_DIAL_MODE_DEMAND "demand_dial"
+#define ZTE_WEB_MANUAL_DIAL_ACTION_CONN "connect"
+#define ZTE_WEB_MANUAL_DIAL_ACTION_DISCONN "disconnect"
+
+//nv for data limit settings
+#define NV_DATA_VOLUME_LIMIT_SWITCH "data_volume_limit_switch" /*0:disable;1:enable*/
+#define NV_DATA_VOLUME_LIMIT_UNIT "data_volume_limit_unit" /*time/data*/
+#define NV_DATA_VOLUME_LIMIT_SIZE "data_volume_limit_size"
+#define NV_DATA_VOLUME_ALERT_PERCENT "data_volume_alert_percent"
+#define DATA_VOLUME_LIMIT_UNIT_TIME "time"
+#define DATA_VOLUME_LIMIT_UNIT_DATA "data"
+#define NV_HTTPSHARE_STATUS "HTTP_SHARE_STATUS"
+#define NV_HTTPSHARE_WR_AUTH "HTTP_SHARE_WR_AUTH"
+#define NV_HTTPSHARE_FILE "HTTP_SHARE_FILE"
+
+//other fluxstat
+#define NV_DATA_TRAFFIC_SIM_PROVINCE "sim_home_location"
+#define NV_DATA_TRAFFIC_SWITCH "is_traffic_aline_on"
+#define NV_DATA_TRAFFIC_MONTH_TOTAL "traffic_month_total"
+#define NV_DATA_TRAFFIC_MONTH_USED "traffic_month_used"
+
+//fota module
+#define FOTA_ACTION_CANCEL_DOWNLOAD "0"
+#define FOTA_ACTION_CONFIRM_DOWNLOAD "1"
+#define FOTA_ACTION_DOWNLOADING_USER_CLICK_CANCEL "2"
+//#define FOTA_UPDATE_VERSION "version"
+#define FOTA_UPGRADE_RESULT "upgrade_result"
+//#define FOTA_PACK_SIZE_INFO "pack_size_info"
+//#define FOTA_UPDATE_INFO "update_info"
+//#define FOTA_SETTINGS_INFO "GetUpgAutoSetting"
+//#define FOTA_NEW_VERSION_STATE "new_version_state"
+
+//NET
+#define HOSTANME "hostname"
+#define MAC "mac"
+#define ADDR "ip"
+#define DOMAIN "domain"
+#define MAC_ADDR "mac_addr"
+#define DEVICES "devices"
+#define SITELIST "siteList"
+#define CMD_LAN_STATION_LIST "lan_station_list"
+#define CMD_CHILDREN_DEVICE_LIST "childGroupList"
+#define CMD_WHITE_SITE_LIST "site_white_list"
+#define CMD_GET_USER_MAC_ADDR "get_user_mac_addr"
+#define CMD_CURRENT_STATICADDR_LIST "current_static_addr_list"
+#define CMD_GET_POWERON_TIME "get_poweron_time"
+#define CMD_GET_LAN_DEV_INFO "get_lan_dev_info" //you wen ti
+#define CMD_GETDDNS_STATUS "getddns_status"
+#define CMD_USSD_DATA_INFO "ussd_data_info"
+#define CMD_GET_DEVICE_MODE "get_device_mode"
+
+//SD
+#define STR_SDCARD_MODE_OPT "sdcard_mode_option"
+
+
+/*useradded module start*/
+#define CMD_GET_SAMPLE "station_list"
+/*useradded module end*/
+
+/****************************All the Goform ID************************************/
+
+//#define GOFORM_MGMT_SET_WEB_DATA "SET_WEB_DATA"
+//#define GOFORM_MGMT_GUEST_USER_CONTROL "GUEST_USER_CONTROL"
+#define GOFORM_MGMT_SET_EXTERNAL_NV "SET_EXTERNAL_NV"
+/*management start*/
+#define GOFORM_MGMT_SET_WEB_LANGUAGE "SET_WEB_LANGUAGE"
+#define GOFORM_MGMT_SET_DEVICEMODE "SET_DEVICE_MODE"
+#define GOFORM_MGMT_LOGIN_IP "LOGIN"
+#define GOFORM_MGMT_LOGOUT_IP "LOGOUT"
+#define GOFORM_MGMT_CHANGE_PASSWORD "CHANGE_PASSWORD"
+#define GOFORM_MGMT_CHANGE_ACCOUNT "CHANGE_ACCOUNT"
+#define GOFORM_MGMT_RESTORE_FACTORY_SETTINGS "RESTORE_FACTORY_SETTINGS"
+#define GOFORM_MGMT_REBOOT "REBOOT_DEVICE"
+#define GOFORM_MGMT_POWEROFF "TURN_OFF_DEVICE"
+#define GOFORM_MGMT_POWER_ON_SPEED "MGMT_CONTROL_POWER_ON_SPEED"
+#define GOFORM_MGMT_QUICK_SETUP "QUICK_SETUP_EX"
+//#define GOFORM_SET_WORK_TYPE "SET_WORK_TYPE"
+#define GOFORM_MGMT_SNTP "SNTP"
+#define GOFORM_MGMT_SYSLOG "SYSLOG"
+//#define GOFORM_HTTP_REDIRECT "HTTP_REDIRECT"
+/*management end*/
+
+/*wan module start*/
+#define GOFORM_WAN_LOCK_FREQUENCY "LOCK_FREQUENCY"
+#define GOFORM_WAN_SET_NETWORK "SET_NETWORK"
+#define GOFORM_WAN_SET_CONNECTION_MODE "SET_CONNECTION_MODE"
+#define GOFORM_WAN_CONNECT_NETWORK "CONNECT_NETWORK"
+#define GOFORM_WAN_DISCONNECT_NETWORK "DISCONNECT_NETWORK"
+#define GOFORM_WAN_SCAN_NETWORK "SCAN_NETWORK"
+#define GOFORM_WAN_SET_BEARER_PREFERENCE "SET_BEARER_PREFERENCE"
+//#define GOFORM_WAN_SET_CONN_SETTING "SET_CONN_SETTING"
+//#define GOFORM_WAN_CANCEL_AUTO_RECONNECT "CANCEL_AUTO_RECONNECT"
+#define GOFORM_WAN_UNLOCK_NETWORK "UNLOCK_NETWORK"
+//statistics module
+#define GOFORM_WAN_RESET_DATA_COUNTER "RESET_DATA_COUNTER"
+#define GOFORM_WAN_DATA_LIMIT_SETTING "DATA_LIMIT_SETTING"
+#define GOFORM_WAN_DATA_FLOW_CALIBRATION_MANUAL "FLOW_CALIBRATION_MANUAL"
+#define GOFORM_SNTP_GETDATASTATIC "SNTP_Getdatastatic"
+//pin,puk module
+#define GOFORM_MGMT_ENTER_PIN "ENTER_PIN"
+#define GOFORM_MGMT_DISABLE_PIN "DISABLE_PIN"
+#define GOFORM_MGMT_ENABLE_PIN "ENABLE_PIN"
+//#define GOFORM_MGMT_MODIFY_PIN "MODIFY_PIN"
+#define GOFORM_MGMT_ENTER_PUK "ENTER_PUK"
+#define GOFORM_MGMT_AUTO_PIN "AUTO_PIN"
+//pbm
+#define GOFORM_PBM_CONTACT_ADD "PBM_CONTACT_ADD"
+#define GOFORM_PBM_CONTACT_DEL "PBM_CONTACT_DEL"
+//sms module
+#define GOFORM_SMS_SET_MSG_CENTER "SET_MESSAGE_CENTER"
+#define GOFORM_SMS_DELETE_SMS "DELETE_SMS"
+#define GOFORM_SMS_DELETE_SMS_ALL "ALL_DELETE_SMS"
+#define GOFORM_SMS_MOVE_TO_SIM "MOVE_TO_SIM"
+#define GOFORM_SMS_SAVE_SMS "SAVE_SMS"
+#define GOFORM_SMS_SEND_SMS "SEND_SMS"
+#define GOFORM_SMS_SET_MSG_READ "SET_MSG_READ"
+//ussd module
+//#define GOFORM_USSD_SEND_CMD "SEND_USSD_CMD"
+#define GOFORM_USSD_PROCESS "USSD_PROCESS"
+//apn module
+#define GOFORM_WAN_APN_PROC_EX "APN_PROC_EX"
+/*wan module end*/
+
+/*wifi module start*/
+#define GOFORM_WLAN_SET "SET_WIFI_INFO"
+//#define GOFORM_WIFI_SET_FOR_SLEEP "SET_WIFI_INFO_FOR_SLEEP"
+//#define GOFORM_SET_SHOW_SSID_KEY_OLED "SET_SHOW_SSID_KEY_OLED"
+#define GOFORM_WLAN_MAC_FILTER "WIFI_MAC_FILTER"
+#define GOFORM_WLAN_WPS_SET "WIFI_WPS_SET"
+#define GOFORM_WLAN_SSID1_SET "SET_WIFI_SSID1_SETTINGS"
+#define GOFORM_WLAN_SSID2_SET "SET_WIFI_SSID2_SETTINGS"
+#define GOFORM_WLAN_WIFI_SLEEP_SET "SET_WIFI_SLEEP_INFO"
+#define GOFORM_WLAN_WIFI_COVERAGE_SET "SET_WIFI_COVERAGE"
+#define GOFORM_WLAN_SET_TSW "SAVE_TSW"
+#define GOFORM_PARENT_CONTROL_SET "SAVE_TIME_LIMITED"
+//wifi station start
+#define GOFORM_WLAN_WIFI_STA_CONTROL "WIFI_STA_CONTROL"
+#define GOFORM_WLAN_WIFI_SPOT_PROFILE_UPDATE "WIFI_SPOT_PROFILE_UPDATE"
+#define GOFORM_WLAN_SET_STA_CON "WLAN_SET_STA_CON"
+#define GOFORM_WLAN_SET_STA_DISCON "WLAN_SET_STA_DISCON"
+#define GOFORM_WLAN_SET_STA_REFRESH "WLAN_SET_STA_REFRESH"
+/*wifi module end*/
+
+/*router module start*/
+#define GOFORM_ROUTER_DEL_IP_PORT_FILETER "DEL_IP_PORT_FILETER"
+#define GOFORM_ROUTER_ADD_IP_PORT_FILETER_V4V6 "ADD_IP_PORT_FILETER_V4V6"//ÉèÖö˿ڹýÂËÐÅÏ¢
+#define GOFORM_ROUTER_DEL_IP_PORT_FILETER_V4V6 "DEL_IP_PORT_FILETER_V4V6"
+#define GOFORM_ROUTER_ADD_PORT_FORWARE "FW_FORWARD_ADD"
+#define GOFORM_ROUTER_DEL_PORT_FORWARE "FW_FORWARD_DEL"
+#define GOFORM_ROUTER_ADD_PORT_MAP "ADD_PORT_MAP"
+#define GOFORM_ROUTER_DEL_PORT_MAP "DEL_PORT_MAP"
+#define GOFORM_ROUTER_BASIC_SETTING "BASIC_SETTING"
+#define GOFORM_ROUTER_FORWARD_SETTING "VIRTUAL_SERVER"
+#define GOFORM_ROUTER_SYSTEM_SECURITY "FW_SYS"
+#define GOFORM_ROUTER_DHCP_SETTING "DHCP_SETTING"
+#define GOFORM_ROUTER_STATIC_DHCP_SETTING "STATIC_DHCP_SETTING"
+#define GOFORM_ROUTER_UPNP_SETTING "UPNP_SETTING"
+#define GOFORM_ROUTER_DMZ_SETTING "DMZ_SETTING"
+#define GOFORM_ROUTER_EDIT_HOSTNAME "EDIT_HOSTNAME"
+#define GOFORM_BIND_STATIC_ADDRESS_SET "SET_BIND_STATIC_ADDRESS"
+#define GOFORM_BIND_STATIC_ADDRESS_ADD "BIND_STATIC_ADDRESS_ADD"
+#define GOFORM_BIND_STATIC_ADDRESS_DEL "BIND_STATIC_ADDRESS_DEL"
+#define GOFORM_ADD_CHILDREN_DEVICE "ADD_DEVICE"
+#define GOFORM_DEL_CHILDREN_DEVICE "DEL_DEVICE"
+#define GOFORM_ADD_WHITE_SITE "ADD_WHITE_SITE"
+#define GOFORM_REMOVE_WHITE_SITE "REMOVE_WHITE_SITE"
+#define GOFORM_URL_FILTER_DELETE "URL_FILTER_DELETE"
+#define GOFORM_URL_FILTER_ADD "URL_FILTER_ADD"
+#define GOFORM_DDNS "DDNS"
+//#define GOFORM_DNS_MODE_SET "SET_DNS_MODE"
+//#define GOFORM_DNS_SERVER_SET "SET_DNS_SERVER"
+
+// wan pppoe *
+#define GOFORM_SET_OPERATION_MODE "OPERATION_MODE"
+//#define GOFORM_SET_WAN_GATEWAYMODE "WAN_GATEWAYMODE"
+#define GOFORM_SET_WAN_GATEWAYMODE_PPPOE "WAN_GATEWAYMODE_PPPOE"
+#define GOFORM_SET_WAN_GATEWAYMODE_DHCP "WAN_GATEWAYMODE_DHCP"
+#define GOFORM_SET_WAN_GATEWAYMODE_STATIC "WAN_GATEWAYMODE_STATIC"
+#define GOFORM_SET_WAN_GATEWAYMODE_AUTO "WAN_GATEWAYMODE_AUTO"
+/*router module end*/
+
+/*httpShare module start*/
+#define GOFORM_HTTPSHARE_GETCARD_VAULE "HTTPSHARE_GETCARD_VALUE"
+#define GOFORM_HTTPSHARE_ENTERFOLD "HTTPSHARE_ENTERFOLD"
+#define GOFORM_HTTPSHARE_NEW "HTTPSHARE_NEW"
+#define GOFORM_HTTPSHARE_DEL "HTTPSHARE_DEL"
+#define GOFORM_HTTPSHARE_FILE_RENAME "HTTPSHARE_FILE_RENAME"
+#define GOFORM_HTTPSHARE_AUTH_SET "HTTPSHARE_AUTH_SET"
+#define GOFORM_HTTPSHARE_MODE_SET "HTTPSHARE_MODE_SET"
+#define GOFORM_HTTPSHARE_CHECK_FILE "GOFORM_HTTPSHARE_CHECK_FILE"
+#define CMD_HTTPSHARE_GETCARD_VAULE "HTTPSHARE_GETCARD_VALUE"
+#define CMD_HTTPSHARE_GETCARD_NMEA "HTTPSHARE_GETCARD_NAME"
+#define CMD_HTTPSHARE_AUTH_GET "HTTPSHARE_AUTH_GET"
+/*httpShare module end*/
+
+/*FOTA module start*/
+#define GOFORM_SET_FOTAAUTOUPDATE "IF_UPGRADE"
+#define GOFORM_SET_FOTASETTINGS "SetUpgAutoSetting"
+/*FOTA module end*/
+
+/*ping test*/
+#define GOFORM_PING_DIAGNOSTICS_START "PINT_DIAGNOSTICS_START"
+#define GOFORM_PING_DIAGNOSTICS_STOP "PINT_DIAGNOSTICS_STOP"
+/*ping test*/
+
+/*useradded module start*/
+#define GOFORM_SET_SAMPLE "GOFORM_SET_SAMPLE"
+/*useradded module end*/
+
+
+/****************************All the web pages' URL************************************/
+#define ZTE_WEB_PAGE_LOGIN_NAME "index.html"
+#define ZTE_WEB_MOBILE_PAGE_LOGIN_NAME "mobile.html"
+
+#define ZTE_WEB_PAGE_MSG "/message.asp"
+#define ZTE_WEB_PAGE_NET_CONNECT "/air_network/net_connect.asp"
+#define ZTE_WEB_PAGE_PPP_CONNECTING "/air_network/pppconnect.asp"
+#define ZTE_WEB_PAGE_PPP_DISCONNECT "/air_network/pppdisconnect.asp"
+
+/*******************************************************************************
+ * Type definitions *
+ ******************************************************************************/
+/**
+ * @brief time
+ * @param sec second
+ * @param usec Microsecond
+ * @note
+ * @warning
+ */
+struct os_time {
+ long sec;
+ long usec;
+};
+
+
+/**
+ * @brief goform/cmd table's struct
+ * @param goform_id the message id extract from URL
+ * @param proc_func the handler of this goform_id
+ * @note
+ * @warning
+ */
+typedef struct web_goform_struct {
+ char goform_id[50];
+ void (*proc_func)(webs_t wp);
+} web_goform_type;
+
+/*******************************************************************************
+ * Global variable declarations *
+ ******************************************************************************/
+typedef enum _data_safe_result_type_t {
+ DATA_NO_SAFE = 0,
+ DATA_SAFE = 1
+} data_safe_result_type_t;
+
+typedef enum {
+ ZTE_NVIO_FAIL = 0,
+ ZTE_NVIO_DONE = 1,
+ ZTE_NVIO_BUSY = 2,
+ ZTE_NVIO_BADCMD = 3,
+ ZTE_NVIO_MAX
+} zte_topsw_state_e_type;
+
+
+
+/*******************************************************************************
+ * Global function declarations *
+ ******************************************************************************/
+/**
+* @brief Get current systime
+*
+* @param
+*
+* @return currentTime
+* @note
+* @warning
+*/
+int zte_web_getCurrentTime();
+
+/**
+* @brief the entry of zte code in goahead.
+*
+* @param
+*
+* @return currentTime
+* @note
+* @warning
+*/
+extern void zte_web_init();
+
+/**
+ * @brief Read the NV's value from the nv file.
+ *
+ * @param item Pointer to the NV's name.
+ * @param data Pointer to the NV's value.
+ * @param dataLen data's length.
+ *
+ * @return zte_topsw_state_e_type result number
+ * @note
+ * @warning
+ */
+zte_topsw_state_e_type zte_nvconfig_read(char *item, char *data, int dataLen);
+
+/**
+* @brief Write the NV's name and value into the nv file.
+*
+* @param item Pointer to the NV's name.
+* @param data Pointer to the NV's value.
+* @param dataLen data's length.
+*
+* @return zte_topsw_state_e_type result number
+* @note
+* @warning
+*/
+zte_topsw_state_e_type zte_nvconfig_write(char *item, char *data, int dataLen);
+
+/**
+* @brief goform entry from web pages to get fw para, call the related functions according to the cmd
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+void zte_goform_get_cmd_process(webs_t wp, char *path, char *query);
+
+/**
+* @brief goform entry from web pages to set fw para, call the related functions according to the goformId
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+void zte_goform_set_cmd_process(webs_t wp, char *path, char *query);
+
+/**
+* @brief Feed back web page at top location.
+*
+* @param i_wp HTTP Request Info.
+* @param i_pageName The page name.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_webs_feedback_top(webs_t i_wp, char *i_pageName);
+
+/**
+* @brief Check whether the login timeout.
+*
+* @param i_wp HTTP Request Info.
+* @param i_pageName The page name.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_mgmt_login_timeout_check();
+
+/**
+* @brief Send SMS.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_sms_send_msg_process(webs_t wp);
+
+/**
+* @brief Save SMS.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_sms_save_msg_process(webs_t wp);
+
+/**
+* @brief Delete message.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_sms_delete_msg_process(webs_t wp);
+
+/**
+* @brief Move message to SIM.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_sms_move_to_sim_msg_process(webs_t wp);
+
+/**
+* @brief Delete all messages.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_goform_sms_alldel_msg_process(webs_t wp);
+
+/**
+* @brief Set SMS related parameters.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_sms_set_message_center(webs_t wp);
+
+/**
+* @brief To set the viewed message as read.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_sms_view_msg_process(webs_t wp);
+
+/**
+* @brief Add new contact.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_goform_pbm_contact_add_process(webs_t wp);
+
+/**
+* @brief Delete contact.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_goform_pbm_contact_del_process(webs_t wp);
+
+/**
+* @brief Set WiFi basic parameter.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_wlan_basic_set(webs_t wp);
+
+/**
+* @brief Set WiFi MAC filter parameters.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_wlan_mac_filter_set(webs_t wp);
+
+/**
+* @brief Set WiFi WPS mode.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_wlan_wps_mode_set(webs_t wp);
+
+/**
+* @brief Set WiFi sleep and wake up at regular time.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_wlan_set_tsw(webs_t wp);
+
+/**
+* @brief Set WiFi SSID1 parameters.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_wlan_web_ssid1_set(webs_t wp);
+
+/**
+* @brief Set WiFi SSID2 parameters.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_wlan_ssid2_set(webs_t wp);
+
+/**
+* @brief To set the WiFi sleep mode.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_wlan_sleep_set(webs_t wp);
+
+/**
+* @brief Set WiFi coverage mode.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_wlan_coverage_set(webs_t wp);
+
+/**
+* @brief Set WiFi apstation parameters.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_wlan_station_set(webs_t wp);
+
+/**
+* @brief Update the wifi spot profile.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_wlan_station_spot_profile_update(webs_t wp);
+
+/**
+* @brief Connect to wifi spot.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_wlan_station_connect(webs_t wp);
+
+/**
+* @brief Disconnect wifi spot.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_wlan_station_disconnect(webs_t wp);
+
+/**
+* @brief Scan the wifi spot.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_wlan_station_refresh(webs_t wp);
+
+/**
+* @brief Get the wlan port's information.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_wlan_get_station_list(webs_t wp);
+extern void zte_wlan_get_wps_pin(webs_t wp);
+extern void zte_wlan_get_wps_defpin(webs_t wp);
+
+
+
+/**
+* @brief Register network after manual search.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_wan_set_network(webs_t wp);
+
+/**
+* @brief Set connect mode.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_wan_set_connection_mode(webs_t wp);
+
+/**
+* @brief Connect to the network.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_wan_connect_network(webs_t wp);
+
+/**
+* @brief Disonnect the network.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_wan_disconnect_network(webs_t wp);
+
+/**
+* @brief Scan the network.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_wan_scan_network(webs_t wp);
+
+/**
+* @brief Set the mode of searching network.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_wan_network_select(webs_t wp);
+
+/**
+* @brief Set the management of network flow.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_wan_data_limit_setting(webs_t wp);
+
+/**
+* @brief Calibrate the network flow by manual.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_wan_data_flow_calibration_manual(webs_t wp);
+
+
+/**
+* @brief Clear the network flow records.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_wan_data_statistics_clear_process(webs_t wp, char_t *path, char_t *query);//11
+
+/**
+* @brief Init the httpshare.
+*
+* @param
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_httpshare_init();
+
+/**
+* @brief Get file list from httpshare's database.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_httpShare_enterFold(webs_t wp);
+
+/**
+* @brief Creat a new folder.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_httpShare_new(webs_t wp);
+
+/**
+* @brief Delete file or folder from SD card.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_httpShare_del(webs_t wp);
+
+/**
+* @brief Set the httpshare's configs.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_httpShare_auth_set(webs_t wp);
+
+/**
+* @brief Set the SD card's mode:usb mode or httpshare mode.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_httpShare_modeset(webs_t wp);
+
+/**
+* @brief Creat a new folder.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_httpShare_rename(webs_t wp);
+
+/**
+* @brief Check file exists.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_httpShare_check_file(webs_t wp);
+
+/**
+* @brief Get the httpshare's configs.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_httpShare_auth_get(webs_t wp);
+
+/**
+* @brief Get the SD card's name:"MicroSD Card".
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_httpShare_getcard_name(webs_t wp);
+
+/**
+* @brief Get the SD card's available capacity and total capacity.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_httpShare_getcard_value(webs_t wp);
+
+/**
+* @brief Ussd's operator process.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_goform_ussd_process(webs_t wp);
+
+/**
+* @brief Handle the auto or manual apn set for ipv4ipv6.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_form_multi_apn_proc_ex(webs_t wp);
+
+/**
+* @brief Set the user's selection:update or cancel.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_fota_update(webs_t wp);
+
+/**
+* @brief Set the fota's configs.
+*
+* @param wp HTTP Request Info.
+*
+* @return
+* @note
+* @warning
+*/
+extern void zte_fota_settings(webs_t wp);
+
+
+extern void zte_init_login_psw_time(void);
+extern int zte_apn_param_check(webs_t wp, char * type);
+extern void zte_get_login_lock_time(webs_t wp);
+extern void zte_get_login_status_value(webs_t wp, char *login_status);
+extern void zte_get_ddns_status(webs_t wp);
+extern void zte_dhcpv6_state_set(webs_t wp);
+extern void zte_mtu_set(webs_t wp);
+extern void zte_dns_mode_set(webs_t wp);
+//extern void zte_dns_server_set(webs_t wp);
+extern void zte_ping_diagnostics_start(webs_t wp);
+extern void zte_ping_diagnostics_stop(webs_t wp);
+extern void zte_get_poweron_time(webs_t wp);
+extern void zte_get_lan_dev_info(webs_t wp);
+extern void zte_goform_set_external_nv(webs_t wp);
+extern void zte_goform_set_work_type(webs_t wp);
+
+//other sntp + fluxstat + parent_control_set
+extern void zte_goform_sntp_getdatastatic_process(webs_t wp);
+extern void zte_parent_control_set(webs_t wp);//parent mode time control
+
+/*useradded module start*/
+extern void zte_goform_set_sample(webs_t wp);
+/*useradded module end*/
+
+
+/**
+* @brief Data to be decoded.
+*
+* @param src Data to be decoded.
+* @param len Length of the data to be decoded.
+* @param out_len Pointer to output length variable.
+*
+* @return Allocated buffer of out_len bytes of decoded data,or NULL on failure
+* @note Caller is responsible for freeing the returned buffer.
+* @warning
+*/
+extern unsigned char * zte_base64_decode(const unsigned char *src, size_t len, size_t *out_len);
+#ifdef WEBS_SECURITY
+extern char *zte_base64_encode(const char *data, int data_len);
+#endif
+
+extern int zte_Safe_valid_SpecialChar(char single_data);
+extern int zte_Safe_valid_SpecialChar_other(char single_data);
+extern int zte_valid_length_str(char *string_s, int min, int max);
+
+extern data_safe_result_type_t zte_Safe_isMacValid(char *str);
+extern data_safe_result_type_t zte_Safe_isIpValid(char *str);
+extern data_safe_result_type_t zte_Safe_isNumOnly(char *str);
+extern data_safe_result_type_t zte_Safe_noSpecialChar(char *str);
+extern data_safe_result_type_t zte_Safe_noSpecialChar_other(char *str);
+extern data_safe_result_type_t zte_Safe_isStringOnly(char *str);
+extern data_safe_result_type_t zte_Safe_isNumorStringOnly(char *str);
+
+extern int web_set_pwd(char *buf);
+extern void web_init_pwd(void);
+extern int web_check_pwd(char* buf);
+
+extern int web_aes_init(void);
+
+#endif
+