[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit

Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/ap/app/zte_comm/sntp/sntp.h b/ap/app/zte_comm/sntp/sntp.h
new file mode 100755
index 0000000..cdf68f0
--- /dev/null
+++ b/ap/app/zte_comm/sntp/sntp.h
@@ -0,0 +1,124 @@
+//SNTP
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+#include "cfg_api.h"
+#include "message.h"
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/msg.h>
+#include <sys/ipc.h>
+#include <errno.h>
+#include <syslog.h>
+#include <pthread.h>
+//#include "sntp_msg.h"
+#include "softap_api.h"
+
+/**************************************************************************
+* ºê¶¨ÒåÇø
+**************************************************************************/
+#define  SNTP_PORT       123
+#define  SNTP_8HOUR        (3600U * 8U)
+#define  SNTP_SECONDS_FROM_1900_TO_1970     (86400U*(365U*70U+17U))
+#define  SNTP_JAN_2000   946684791
+#define  SNTP_WAIT_TIME_HOUR     (60*60)
+#define  SNTP_WAIT_TIME_DAY     (60*60*24)
+#define  SNTP_WAIT_TIME_WEEK   (SNTP_WAIT_TIME_DAY*7) 
+#define  SNTP_DEFAULT_NEXT_SYNC_INTERVAL_TIME_WHEN_SUCCESS   SNTP_WAIT_TIME_WEEK   /* 30DAY */
+#define  SNTP_DEFAULT_NEXT_SYNC_INTERVAL_TIME_WHEN_FAILURE   (60*10)   /* s */
+#define  SNTP_DEFAULT_SYNC_SELECT_INTERVAL_TIME              30/*s*/
+#define  SNTP_SERVER_NUM   "sntp_server_count"//3
+#define  SNTP_PROCESS_OVER_TIME   "sntp_process_over_time"
+#define  SNTP_PROCESS_RESULT  "sntp_process_result"
+#define  SNTP_PROCESS_STATE  "sntp_process_state"
+//#define  SNTP_ERROR_STATE "sntp_error_state"
+#define  SNTP_SUCCESS_COUNT "sntp_success_count"
+
+//ÓÃÓÚ²»Í¬µÄ½ø³Ì¼äͬ²½
+#define TIME_SEM_KEY_1 0x0A2B
+#define TIME_SEM_KEY_2 0x3A4B
+
+
+
+/**************************************************************************
+* È«¾Ö±äÁ¿¶¨ÒåÇø
+**************************************************************************/
+pthread_mutex_t g_sntp_getaddrinfo_mutex;
+pthread_mutex_t g_sntp_getnameinfo_mutex;
+
+
+
+/**************************************************************************
+*Êý¾Ý³¤¶È¶¨Òå
+**************************************************************************/
+#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
+
+
+
+/**************************************************************************
+* Êý¾Ý½á¹¹¶¨ÒåÇø
+**************************************************************************/
+
+union semun {
+	int val;
+	struct semid_ds *buf;
+	unsigned short *array;
+};
+
+typedef enum _sntp_result_type_t {
+	SNTP_RESULT_FAIL = -1,
+	SNTP_RESULT_OK,
+	SNTP_RESULT_CONTINUE,
+	SNTP_RESULT_INVALID_SERVER,
+} sntp_result_type_t;
+
+typedef enum _sntp_error_type_t {
+	SNTP_ERROR_NOT_GET_HOST,
+	SNTP_ERROR_CREATE_SOCKET,
+	SNTP_ERROR_SEND_TO,
+	SNTP_ERROR_SELECT_OVER_TIME,
+	SNTP_ERROR_SELECT_RETURN_ERR,
+	SNTP_ERROR_RECV_FROM,
+	SNTP_ERROR_ALL_SERVER_INVALID,
+} sntp_error_type_t;
+
+typedef struct NTP_TIME_FMT {
+	time_t seconds;
+	time_t fractional;
+} NTP_TIME_FMT;
+
+typedef struct NTP_PKT_BASE {
+	unsigned char liVnMode; /* LeapSecond(2bits:0), VersionNumber(3bits: 3), Mode(3bits: Client=3, Server=4) */
+	unsigned char stratum; /* ʱ¼ä²ã¼¶ £¨0-15£© */
+	unsigned char poll; /* ±íʾÁ¬ÐøÐÅÏ¢¼äµÄ×î´ó¼ä¸ô£¬8 bits£¬ÒÔ2µÄx´ÎÃÝÃëµÄÐÎʽ±íʾ¡£Êµ¼ÊÌî0¼´¿É */
+	unsigned char precision; /* ʱ¼ä¾«¶È£¬ÒÔ2µÄ¸ºx´ÎÃÝÃë±íʾ£¬8 bits¡£·þÎñÆ÷·µ»ØÊ±»áÌîдʵ¼Ê¾«¶È */
+	unsigned long rootDelay; /* µ½Ö÷²Î¿¼Ê±¼äÔ´µÄÍù·µ×ÜÑÓ³Ù¡£32 bits¹Ì¶¨Ð¡ÊýµãÊý£¬Ð¡ÊýµãÔÚbit 15ºÍbit 16Ö®¼ä */
+	unsigned long rootDispersion; /* Ïà¶ÔÓÚÖ÷²Î¿¼Ê±¼äÔ´µÄÕý³£Àë²î¡£32 bits¹Ì¶¨Ð¡ÊýµãÊý£¬Ð¡ÊýµãÔÚbit 15ºÍbit 16Ö®¼ä */
+	char referenceID[4]; /* ÓÃÓÚʶ±ðÌØÊâµÄ²Î¿¼Ô´ */
+	NTP_TIME_FMT referenceTimestamp; /* ±¾µØÊ±ÖÐ×îºóÒ»´ÎÉèÖûòÐÞÕýʱµÄʱ¼ä£¬64bits£¬timestamp¸ñʽ */
+	NTP_TIME_FMT originateTimestamp; /* ¿Í»§¶Ë·¢ËÍÇëÇóµÄʱ¼ä */
+	NTP_TIME_FMT receiveTimestamp; /* ·þÎñÆ÷½ÓÊÕµ½ÇëÇóµÄʱ¼ä */
+	NTP_TIME_FMT transmitTimestamp; /* ·þÎñÆ÷·¢ËÍÏìÓ¦µÄʱ¼ä */
+} SNTP_HEADER;
+
+struct sntp_server {
+	struct list_head list;
+	char sntp_server_ip[NV_ITEM_STRING_LEN_64];
+	char is_ipaddr;
+};
+
+struct sntp_sync_queue {
+	struct list_head list;
+	int src_id;
+};
+void zte_sntp_success_notify();
+
+