/* * Copyright (c) 2016 Cesanta Software Limited * All rights reserved */ #include "mongoose.h" static int s_exit_flag = 0; static const char *s_default_server = "pool.ntp.org"; static void ev_handler(struct mg_connection *c, int ev, void *ev_data) { struct mg_sntp_message *sm = (struct mg_sntp_message *) ev_data; time_t t; (void) c; switch (ev) { case MG_SNTP_REPLY: t = time(NULL); fprintf(stdout, "Local time: %s", ctime(&t)); t = (time_t) sm->time; fprintf(stdout, "Time from %s: %s", s_default_server, ctime(&t)); s_exit_flag = 1; break; case MG_SNTP_FAILED: fprintf(stderr, "Failed to get time\n"); s_exit_flag = 1; break; } } int main() { struct mg_mgr mgr; struct mg_connection *c; mg_mgr_init(&mgr, NULL); c = mg_sntp_get_time(&mgr, ev_handler, s_default_server); if (c == NULL) { fprintf(stderr, "Failed to connect to %s\n", s_default_server); return -1; } while (s_exit_flag == 0) { mg_mgr_poll(&mgr, 1000); } mg_mgr_free(&mgr); return 0; }