12345678910111213141516171819202122232425262728293031323334353637383940 |
- --- openntpd-3.9p1.orig/server.c 2006-05-14 07:29:21.000000000 +0200
- +++ openntpd-3.9p1/server.c 2010-07-02 15:33:05.061342638 +0200
- @@ -150,21 +150,33 @@ server_dispatch(int fd, struct ntpd_conf
- version = (query.status & VERSIONMASK) >> 3;
-
- bzero(&reply, sizeof(reply));
- - if (conf->status.synced)
- + if (conf->status.synced || conf->ignore)
- reply.status = conf->status.leap;
- else
- reply.status = LI_ALARM;
- +
- reply.status |= (query.status & VERSIONMASK);
- if ((query.status & MODEMASK) == MODE_CLIENT)
- reply.status |= MODE_SERVER;
- else
- reply.status |= MODE_SYM_PAS;
-
- - reply.stratum = conf->status.stratum;
- + if (conf->ignore) {
- + reply.stratum = 1;
- + reply.precision = -20;
- + } else {
- + reply.stratum = conf->status.stratum;
- + reply.precision = conf->status.precision;
- + }
- +
- reply.ppoll = query.ppoll;
- - reply.precision = conf->status.precision;
- reply.rectime = d_to_lfp(rectime);
- - reply.reftime = d_to_lfp(conf->status.reftime);
- +
- + if (conf->ignore)
- + reply.reftime = d_to_lfp(gettime());
- + else
- + reply.reftime = d_to_lfp(conf->status.reftime);
- +
- reply.xmttime = d_to_lfp(gettime());
- reply.orgtime = query.xmttime;
- reply.rootdelay = d_to_sfp(conf->status.rootdelay);
|