mirror of
https://github.com/systemd/systemd.git
synced 2025-01-11 09:18:07 +03:00
timesyncd: fix calculation of transmit time
The kernel timestamp (recv_time) is made earlier than current time (now_ts), use the timestamp captured before sending packet directly.
This commit is contained in:
parent
07610e108e
commit
73c76e6330
Notes:
Lennart Poettering
2014-10-24 17:40:22 +02:00
Backport: bugfix
@ -500,7 +500,6 @@ static int manager_receive_response(sd_event_source *source, int fd, uint32_t re
|
||||
.msg_namelen = sizeof(server_addr),
|
||||
};
|
||||
struct cmsghdr *cmsg;
|
||||
struct timespec now_ts;
|
||||
struct timeval *recv_time;
|
||||
ssize_t len;
|
||||
double origin, receive, trans, dest;
|
||||
@ -613,8 +612,7 @@ static int manager_receive_response(sd_event_source *source, int fd, uint32_t re
|
||||
* The round-trip delay, d, and system clock offset, t, are defined as:
|
||||
* d = (T4 - T1) - (T3 - T2) t = ((T2 - T1) + (T3 - T4)) / 2"
|
||||
*/
|
||||
assert_se(clock_gettime(clock_boottime_or_monotonic(), &now_ts) >= 0);
|
||||
origin = tv_to_d(recv_time) - (ts_to_d(&now_ts) - ts_to_d(&m->trans_time_mon)) + OFFSET_1900_1970;
|
||||
origin = ts_to_d(&m->trans_time) + OFFSET_1900_1970;
|
||||
receive = ntp_ts_to_d(&ntpmsg.recv_time);
|
||||
trans = ntp_ts_to_d(&ntpmsg.trans_time);
|
||||
dest = tv_to_d(recv_time) + OFFSET_1900_1970;
|
||||
|
Loading…
Reference in New Issue
Block a user