70 lines
1.9 KiB
C
70 lines
1.9 KiB
C
/**
|
|
* Copyright (2017) Baidu Inc. All rights reserved.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
// Author: Chang Li (changli@baidu.com)
|
|
//
|
|
// Description: NTP client API decleration.
|
|
|
|
#include <stdint.h>
|
|
|
|
#ifndef BAIDU_IOT_TINYDU_IOT_OS_SRC_IOT_BAIDU_CA_SOURCE_BAIDU_CA_IOT_NTP_H
|
|
#define BAIDU_IOT_TINYDU_IOT_OS_SRC_IOT_BAIDU_CA_SOURCE_BAIDU_CA_IOT_NTP_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef struct _DuerTime {
|
|
uint32_t sec;
|
|
uint32_t usec;
|
|
} DuerTime;
|
|
|
|
#define NTP_PKG_LEN 48
|
|
#define NTP_MAC_LEN 20 // contains 4 Bytes:Key ID and 16 Bytes:Message Authentication Code
|
|
|
|
#define MD5_KEYID_LEN 4
|
|
#define MD5_DIGEST_LEN 16
|
|
#define MD5_KEY_LEN 16
|
|
|
|
typedef struct _md5_key {
|
|
uint32_t key_id;
|
|
char key_str[MD5_KEY_LEN];
|
|
} Md5Key;
|
|
|
|
/**
|
|
* @brief get NTP time
|
|
*
|
|
* @param host: NTP server name. If host is NULL, use "s2c.time.edu.cn" by
|
|
* default.
|
|
*
|
|
* @param timeout: timeout to acquire the NTP time, unit is micro seconds. If
|
|
* it's 0, use 2000 ms by default.
|
|
*
|
|
* @param result_time: the acquired NTP time.
|
|
*
|
|
* @param key: Using keyed MD5 for Authentication for some specific NTP servers.
|
|
* If unnecessary, specify it NULL.
|
|
*
|
|
* @return 0 is okay, netgative value is failed.
|
|
*/
|
|
int duer_ntp_client(char *host, int timeout, DuerTime *result_time, Md5Key *key);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // BAIDU_IOT_TINYDU_IOT_OS_SRC_IOT_BAIDU_CA_SOURCE_BAIDU_CA_IOT_NTP_H
|
|
|