From 12befc2afd43b41c72e982e6b24966965697fcf1 Mon Sep 17 00:00:00 2001 From: Miroslav Lichvar Date: Mon, 22 Aug 2016 13:14:45 +0200 Subject: [PATCH] ntp: fix processing of kernel timestamps on non-Linux systems When the SO_TIMESTAMP socket option was enabled, the expected type of control messages containing timestamps was SO_TIMESTAMP instead of SCM_TIMESTAMP. This worked on Linux, where the two values are equal, but not on the other supported systems. The timestamps were ignored and this probably worsened the accuracy and stability of the synchronisation. --- ntp_io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ntp_io.c b/ntp_io.c index cf087de..88fc76e 100644 --- a/ntp_io.c +++ b/ntp_io.c @@ -556,7 +556,7 @@ read_from_socket(void *anything) #endif #ifdef SO_TIMESTAMP - if (cmsg->cmsg_level == SOL_SOCKET && cmsg->cmsg_type == SO_TIMESTAMP) { + if (cmsg->cmsg_level == SOL_SOCKET && cmsg->cmsg_type == SCM_TIMESTAMP) { struct timeval tv; memcpy(&tv, CMSG_DATA(cmsg), sizeof(tv));