[OpenWrt-Devel] [PATCHv3] odhcpd: fix compilation with musl 1.2.0
Rosen Penev
rosenp at gmail.com
Wed Mar 25 19:13:19 EDT 2020
SYS_clock_gettime is gone with musl 1.2.0. Switched to the function.
Also fixed two format strings that fail as time_t is 64-bit with 1.2.0.
Signed-off-by: Rosen Penev <rosenp at gmail.com>
---
v3: no need for linking to librt
v2: switch to function
src/dhcpv6-ia.c | 8 ++++----
src/odhcpd.c | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/dhcpv6-ia.c b/src/dhcpv6-ia.c
index 1a13945..01b0939 100644
--- a/src/dhcpv6-ia.c
+++ b/src/dhcpv6-ia.c
@@ -338,12 +338,12 @@ void dhcpv6_ia_write_statefile(void)
odhcpd_hexlify(duidbuf, ctxt.c->clid_data, ctxt.c->clid_len);
/* iface DUID iaid hostname lifetime assigned length [addrs...] */
- ctxt.buf_idx = snprintf(ctxt.buf, ctxt.buf_len, "# %s %s %x %s%s %ld %x %u ",
+ ctxt.buf_idx = snprintf(ctxt.buf, ctxt.buf_len, "# %s %s %x %s%s %lld %x %u ",
ctxt.iface->ifname, duidbuf, ntohl(ctxt.c->iaid),
(ctxt.c->flags & OAF_BROKEN_HOSTNAME) ? "broken\\x20" : "",
(ctxt.c->hostname ? ctxt.c->hostname : "-"),
(ctxt.c->valid_until > now ?
- (ctxt.c->valid_until - now + wall_time) :
+ (int64_t)(ctxt.c->valid_until - now + wall_time) :
(INFINITE_VALID(ctxt.c->valid_until) ? -1 : 0)),
ctxt.c->assigned, (unsigned)ctxt.c->length);
@@ -368,12 +368,12 @@ void dhcpv6_ia_write_statefile(void)
odhcpd_hexlify(duidbuf, c->hwaddr, sizeof(c->hwaddr));
/* iface DUID iaid hostname lifetime assigned length [addrs...] */
- ctxt.buf_idx = snprintf(ctxt.buf, ctxt.buf_len, "# %s %s ipv4 %s%s %ld %x 32 ",
+ ctxt.buf_idx = snprintf(ctxt.buf, ctxt.buf_len, "# %s %s ipv4 %s%s %lld %x 32 ",
ctxt.iface->ifname, duidbuf,
(c->flags & OAF_BROKEN_HOSTNAME) ? "broken\\x20" : "",
(c->hostname ? c->hostname : "-"),
(c->valid_until > now ?
- (c->valid_until - now + wall_time) :
+ (int64_t)(c->valid_until - now + wall_time) :
(INFINITE_VALID(c->valid_until) ? -1 : 0)),
ntohl(c->addr));
diff --git a/src/odhcpd.c b/src/odhcpd.c
index 4b8e589..26094b1 100644
--- a/src/odhcpd.c
+++ b/src/odhcpd.c
@@ -440,7 +440,7 @@ int odhcpd_urandom(void *data, size_t len)
time_t odhcpd_time(void)
{
struct timespec ts;
- syscall(SYS_clock_gettime, CLOCK_MONOTONIC, &ts);
+ clock_gettime(CLOCK_MONOTONIC, &ts);
return ts.tv_sec;
}
--
2.25.1
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list