[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();
+
+