mirror of
https://github.com/cesanta/mongoose.git
synced 2026-10-08 08:54:54 +07:00
55 lines
1.5 KiB
C
55 lines
1.5 KiB
C
/*
|
|
* Copyright (c) 2016 Cesanta Software Limited
|
|
* All rights reserved
|
|
*/
|
|
|
|
#ifndef CS_MONGOOSE_SRC_SNTP_H_
|
|
#define CS_MONGOOSE_SRC_SNTP_H_
|
|
|
|
#if MG_ENABLE_SNTP
|
|
|
|
#define MG_SNTP_EVENT_BASE 500
|
|
|
|
/*
|
|
* Received reply from time server. Event handler parameter contains
|
|
* pointer to mg_sntp_message structure
|
|
*/
|
|
#define MG_SNTP_REPLY (MG_SNTP_EVENT_BASE + 1)
|
|
|
|
/* Received malformed SNTP packet */
|
|
#define MG_SNTP_MALFORMED_REPLY (MG_SNTP_EVENT_BASE + 2)
|
|
|
|
/* Failed to get time from server (timeout etc) */
|
|
#define MG_SNTP_FAILED (MG_SNTP_EVENT_BASE + 3)
|
|
|
|
struct mg_sntp_message {
|
|
/* if server sends this flags, user should not send requests to it */
|
|
int kiss_of_death;
|
|
/* usual mg_time */
|
|
double time;
|
|
};
|
|
|
|
/* Establishes connection to given sntp server */
|
|
struct mg_connection *mg_sntp_connect(struct mg_mgr *mgr,
|
|
MG_CB(mg_event_handler_t event_handler,
|
|
void *user_data),
|
|
const char *sntp_server_name);
|
|
|
|
/* Sends time request to given connection */
|
|
void mg_sntp_send_request(struct mg_connection *c);
|
|
|
|
/*
|
|
* Helper function
|
|
* Establishes connection to time server, tries to send request
|
|
* repeats sending SNTP_ATTEMPTS times every SNTP_TIMEOUT sec
|
|
* (if needed)
|
|
* See sntp_client example
|
|
*/
|
|
struct mg_connection *mg_sntp_get_time(struct mg_mgr *mgr,
|
|
mg_event_handler_t event_handler,
|
|
const char *sntp_server_name);
|
|
|
|
#endif
|
|
|
|
#endif /* CS_MONGOOSE_SRC_SNTP_H_ */
|