| /* |
| * Copyright (c) 2019 Linaro Limited |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #include <zephyr/logging/log.h> |
| LOG_MODULE_DECLARE(net_config, CONFIG_NET_CONFIG_LOG_LEVEL); |
| |
| #include <errno.h> |
| #include <zephyr/net/sntp.h> |
| #include <zephyr/posix/time.h> |
| |
| int net_init_clock_via_sntp(void) |
| { |
| struct sntp_time ts; |
| struct timespec tspec; |
| int res = sntp_simple(CONFIG_NET_CONFIG_SNTP_INIT_SERVER, |
| CONFIG_NET_CONFIG_SNTP_INIT_TIMEOUT, &ts); |
| |
| if (res < 0) { |
| LOG_ERR("Cannot set time using SNTP"); |
| return res; |
| } |
| |
| tspec.tv_sec = ts.seconds; |
| tspec.tv_nsec = ((uint64_t)ts.fraction * (1000 * 1000 * 1000)) >> 32; |
| res = clock_settime(CLOCK_REALTIME, &tspec); |
| |
| return 0; |
| } |