72static void ntp_recv(
void *arg,
struct udp_pcb *pcb,
struct pbuf *p,
const ip_addr_t *addr, u16_t port)
75 uint8_t mode = pbuf_get_at(p, 0) & 0x7;
76 uint8_t stratum = pbuf_get_at(p, 1);
80 uint8_t seconds_buf[4] = {0};
81 pbuf_copy_partial(p, seconds_buf,
sizeof(seconds_buf), 40);
82 uint32_t seconds_since_1900 = seconds_buf[0] << 24 | seconds_buf[1] << 16 | seconds_buf[2] << 8 | seconds_buf[3];
83 uint32_t seconds_since_1970 = seconds_since_1900 -
NTP_DELTA;
84 time_t epoch = seconds_since_1970;
89 printf(
"Invalid NTP response\n");
static void ntp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, const ip_addr_t *addr, u16_t port)