Simple Network Time Protocol Library¶
Overview¶
The SNTP library implements IETF RFC4330 (Simple Network Time Protocol v4).
SNTP provides a way to synchronize clocks in computer networks.
API Reference¶
- group sntp
Simple Network Time Protocol API.
Functions
-
int sntp_init(struct sntp_ctx *ctx, struct sockaddr *addr, socklen_t addr_len)¶
Initialize SNTP context.
- Return
0 if ok, <0 if error.
- Parameters
ctx
: Address of sntp context.addr
: IP address of NTP/SNTP server.addr_len
: IP address length of NTP/SNTP server.
-
int sntp_query(struct sntp_ctx *ctx, uint32_t timeout, struct sntp_time *time)¶
Perform SNTP query.
- Return
0 if ok, <0 if error (-ETIMEDOUT if timeout).
- Parameters
ctx
: Address of sntp context.timeout
: Timeout of waiting for sntp response (in milliseconds).time
: Timestamp including integer and fractional seconds since 1 Jan 1970 (output).
-
void sntp_close(struct sntp_ctx *ctx)¶
Release SNTP context.
- Parameters
ctx
: Address of sntp context.
-
int sntp_simple(const char *server, uint32_t timeout, struct sntp_time *time)¶
Convenience function to query SNTP in one-shot fashion.
Convenience wrapper which calls getaddrinfo(), sntp_init(), sntp_query(), and sntp_close().
- Return
0 if ok, <0 if error (-ETIMEDOUT if timeout).
- Parameters
server
: Address of server in format addr[:port]timeout
: Query timeouttime
: Timestamp including integer and fractional seconds since 1 Jan 1970 (output).
-
struct sntp_ctx¶
- #include <sntp.h>
SNTP context
Public Members
-
uint32_t expected_orig_ts¶
Timestamp when the request was sent from client to server. This is used to check if the originated timestamp in the server reply matches the one in client request.
-
uint32_t expected_orig_ts¶
-
struct sntp_time¶
- #include <sntp.h>
Time as returned by SNTP API, fractional seconds since 1 Jan 1970
-
int sntp_init(struct sntp_ctx *ctx, struct sockaddr *addr, socklen_t addr_len)¶