summaryrefslogtreecommitdiff
path: root/usr.sbin/ntpd
diff options
context:
space:
mode:
authorAlexander Guy <alexander@cvs.openbsd.org>2004-07-11 00:15:11 +0000
committerAlexander Guy <alexander@cvs.openbsd.org>2004-07-11 00:15:11 +0000
commit5f5956ff6c46b9cb957cf649150284eee373cbf6 (patch)
treee0a37591f2fedb011e9bf4949072749766d541bb /usr.sbin/ntpd
parentdde475e446050ba522ede0ec39f98f954367bc70 (diff)
Start collecting the remote server state along with the calculated
offsets, in preparation for having correct server statistics in responses to client queries. ok henning@
Diffstat (limited to 'usr.sbin/ntpd')
-rw-r--r--usr.sbin/ntpd/client.c11
-rw-r--r--usr.sbin/ntpd/ntpd.h24
2 files changed, 28 insertions, 7 deletions
diff --git a/usr.sbin/ntpd/client.c b/usr.sbin/ntpd/client.c
index efe730e9bfe..149ab165bc1 100644
--- a/usr.sbin/ntpd/client.c
+++ b/usr.sbin/ntpd/client.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: client.c,v 1.23 2004/07/10 19:16:06 henning Exp $ */
+/* $OpenBSD: client.c,v 1.24 2004/07/11 00:15:10 alexander Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -169,6 +169,15 @@ client_dispatch(struct ntp_peer *p)
p->reply[p->shift].rcvd = time(NULL);
p->reply[p->shift].good = 1;
+ p->reply[p->shift].status.leap = (msg.status & LIMASK) >> 6;
+ p->reply[p->shift].status.stratum = msg.stratum;
+ p->reply[p->shift].status.precision = msg.precision;
+ p->reply[p->shift].status.rootdelay = sfp_to_d(msg.distance);
+ p->reply[p->shift].status.rootdispersion = sfp_to_d(msg.dispersion);
+ p->reply[p->shift].status.refid = htonl(msg.refid);
+ p->reply[p->shift].status.reftime = lfp_to_d(msg.reftime);
+ p->reply[p->shift].status.poll = msg.ppoll;
+
if (p->trustlevel < TRUSTLEVEL_PATHETIC)
interval = INTERVAL_QUERY_PATHETIC;
else if (p->trustlevel < TRUSTLEVEL_AGRESSIVE)
diff --git a/usr.sbin/ntpd/ntpd.h b/usr.sbin/ntpd/ntpd.h
index ae9acee3e96..452dace9c65 100644
--- a/usr.sbin/ntpd/ntpd.h
+++ b/usr.sbin/ntpd/ntpd.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: ntpd.h,v 1.23 2004/07/10 23:12:57 alexander Exp $ */
+/* $OpenBSD: ntpd.h,v 1.24 2004/07/11 00:15:10 alexander Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -70,12 +70,24 @@ struct ntp_addr {
struct sockaddr_storage ss;
};
+struct ntp_status {
+ u_int8_t leap;
+ u_int8_t stratum;
+ int8_t precision;
+ double rootdelay;
+ double rootdispersion;
+ u_int32_t refid;
+ double reftime;
+ u_int8_t poll;
+};
+
struct ntp_offset {
- u_int8_t good;
- double offset;
- double delay;
- double error;
- time_t rcvd;
+ u_int8_t good;
+ double offset;
+ double delay;
+ double error;
+ time_t rcvd;
+ struct ntp_status status;
};
struct ntp_peer {