From: Dave Hart Date: Thu, 25 Mar 2010 01:42:06 +0000 (+0000) Subject: ChangeLog: X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7e2104df0a34aaf6eeff54a823022fd77fa4995d;p=thirdparty%2Fntp.git ChangeLog: Catch up ChangeLog with several weeks' changes. ntpq-subs.c, ntp_peer.c, ntp_io.c, ntp_proto.c: debug message cleanup for integration with ntp-dev bk: 4baabf6emHlBCe-lQ3UpZxj_IPVb4Q --- diff --git a/ChangeLog b/ChangeLog index ca33cee776..c1df1c4cf2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,67 @@ * [Bug 1483] AI_NUMERICSERV undefined in 4.2.7p20. +* [Bug 1497] fudge is broken by getnetnum() change. +* [Bug 1503] Auto-enabling of monitor for "restrict ... limited" wrong. +* [Bug 1504] ntpdate tickles ntpd "discard minimum 1" rate limit if + "restrict ... limited" is used. +* ntpdate: stop querying source after KoD packet response, log it. +* ntpdate: rate limit each server to 2s between packets. +* Broadcast client (ephemeral) associations should be demobilized only + if they are not heard from for 10 consecutive polls, regardless of + surviving the clock selection. Fix from David Mills. +* Add "ntpq -c ifstats" similar to "ntpdc -c ifstats". +* Add "ntpq -c sysstats" similar to "ntpdc -c sysstats". +* Add "ntpq -c monstats" to show monlist knobs and stats. +* Add "ntpq -c mrulist" similar to "ntpdc -c monlist" but not + limited to 600 rows, and with filtering and sorting options: + ntpq -c "mrulist mincount=2 laddr=192.168.1.2 sort=-avgint" + ntpq -c "mrulist sort=addr" + ntpq -c "mrulist mincount=2 sort=count" + ntpq -c "mrulist sort=-lstint" +* Modify internal representation of MRU list to use l_fp fixed-point + NTP timestamps instead of seconds since startup. This increases the + resolution and substantially improves accuracy of sorts involving + timestamps, at the cost of flushing all MRU entries when the clock is + stepped, to ensure the timestamps can be compared with the current + get_systime() results. +* Add ntp.conf "mru" directive to configure MRU parameters, such as + "mru mindepth 600 maxage 64 maxdepth 5000 maxmem 1024" or + "mru initalloc 0 initmem 16 incalloc 99 incmem 4". Several pairs are + equivalent with one in units of MRU entries and its twin in units of + kilobytes of memory, so the last one used in ntp.conf controls: + maxdepth/maxmem, initalloc/initmem, incalloc/incmem. With the above + values, ntpd will preallocate 16kB worth of MRU entries, allocating + 4kB worth each time more are needed, with a hard limit of 1MB of MRU + entries. Until there are more than 600 entries none would be reused. + Then only entries for addresses last seen 64 seconds or longer ago are + reused. +* Limit "ntpdc -c monlist" response in ntpd to 600 entries, the previous + overall limit on the MRU list depth which was driven by the monlist + implementation limit of one request with a single multipacket + response. +* New "pool" directive implementation modeled on manycastclient. +* Do not abort on non-ASCII characters in ntp.conf, ignore them. +* ntpq: increase response reassembly limit from 24 to 32 packets, add + discussion in comment regarding results with even larger MAXFRAGS. +* ntpq: handle "passwd MYPASSWORD" (without prompting) as with ntpdc. +* ntpdc: do not examine argument to "passwd" if not supplied. +* configure: remove check for pointer type used with qsort(), we + require ANSI C which mandates void *. +* Reset sys_kodsent to 0 in proto_clr_stats(). +* Add sptoa()/sockporttoa() similar to stoa()/socktoa() adding :port. +* Use memcpy() instead of memmove() when buffers can not overlap. +* Remove sockaddr_storage from our sockaddr_u union of sockaddr, + sockaddr_in, and sockaddr_in6, shaving about 100 bytes from its size + and substantially decreasing MRU entry memory consumption. +* Extend ntpq readvar (alias rv) to allow fetching up to three named + variables in one operation: ntpq -c "rv 0 version offset frequency". +* ntpq: use srchost variable to show .POOL. prototype associations' + hostname instead of address 0.0.0.0. +* "restrict source ..." configures override restrictions for time + sources, allows tight default restrictions to be used with the pool + directive (where server addresses are not known in advance). +* Ignore "preempt" modifier on manycastclient and pool prototype + associations. The resulting associations are preemptible, but the + prototype must not be. * Maintain and use linked list of associations (struct peer) in ntpd, avoiding walking 128 hash table entries to iterate over peers. * Remove more workarounds unneeded since we require ISO C90 AKA ANSI C: @@ -18,7 +81,7 @@ * Correct Windows port's refclock_open() to return 0 on failure not -1. * Correct CHU, dumbclock, and WWVB drivers to check for 0 returned from refclock_open() on failure. -* Repair ntpdate.c to handle no longer testing HAVE_TIMER_SETTIME. +* Repair ntpdate.c to no longer test HAVE_TIMER_SETTIME. * Do not reference peer_node/unpeer_node after freeing when built with --disable-saveconfig and using DNS. (4.2.7p20) 2010/02/13 Released by Harlan Stenn diff --git a/ntpd/ntp_io.c b/ntpd/ntp_io.c index c0e2db011f..76b9b3f151 100644 --- a/ntpd/ntp_io.c +++ b/ntpd/ntp_io.c @@ -2423,8 +2423,8 @@ io_setbclient(void) prev_refid = interf->addr_refid; interf->addr_refid = addr2refid(&interf->sin); if (prev_refid != interf->addr_refid) - msyslog(LOG_NOTICE, // !!!!! - "io_setbclient: addr_refid for %s updated %8.8x -> %8.8x", + msyslog(LOG_NOTICE, + "io_setbclient: code is not dead, addr_refid for %s updated %8.8x -> %8.8x, please email hart@ntp.org to remove this message", stoa(&interf->sin), prev_refid, interf->addr_refid); } diff --git a/ntpd/ntp_peer.c b/ntpd/ntp_peer.c index 995fcac797..c6af36065e 100644 --- a/ntpd/ntp_peer.c +++ b/ntpd/ntp_peer.c @@ -375,9 +375,6 @@ score_all( if (tamp != temp) temp = 0; - else // !!!!! - msyslog(LOG_INFO, "score_all(%s) min %d bye", - stoa(&peer->srcadr), temp); return temp; } diff --git a/ntpd/ntp_proto.c b/ntpd/ntp_proto.c index e9885a0c28..c129b285dd 100644 --- a/ntpd/ntp_proto.c +++ b/ntpd/ntp_proto.c @@ -3473,12 +3473,11 @@ pool_xmit( pool->sent++; pool->throttle += (1 << pool->minpoll) - 2; #ifdef DEBUG - msyslog(LOG_NOTICE, "transmit: at %ld %s->%s pool\n", /* !!!!! */ - current_time, latoa(lcladr), stoa(rmtadr)); if (debug) printf("transmit: at %ld %s->%s pool\n", current_time, latoa(lcladr), stoa(rmtadr)); #endif + msyslog(LOG_INFO, "Soliciting pool server %s\n", stoa(rmtadr)); #endif /* WORKER */ } diff --git a/ntpq/ntpq-subs.c b/ntpq/ntpq-subs.c index 3e7ae60c00..072db0c433 100644 --- a/ntpq/ntpq-subs.c +++ b/ntpq/ntpq-subs.c @@ -2309,8 +2309,6 @@ collect_mru_list( while (TRUE) { if (debug) fprintf(stderr, "READ_MRU: %s\n", req_buf); - // if (debug) !!!!! - fprintf(stderr, "%d ", limit); qres = doqueryex(CTL_OP_READ_MRU, 0, 0, strlen(req_buf), req_buf, &rstatus, &rsize, &rdata, TRUE); @@ -2574,9 +2572,6 @@ collect_mru_list( NTP_INSIST(ri > 0 || NULL == recent); } - // if (debug) !!!!! - fprintf(stderr, "\n"); - c_mru_l_rc = TRUE; cleanup_return: @@ -2873,21 +2868,25 @@ mrulist( fflush(fp); } fflush(fp); - // if (debug) !!!!! - fprintf(stderr, "--- completed, freeing sorted[] pointers\n"); - fflush(stderr); + if (debug) { + fprintf(stderr, + "--- completed, freeing sorted[] pointers\n"); + fflush(stderr); + } free(sorted); cleanup_return: - // if (debug) !!!!! - fprintf(stderr, "... freeing MRU entries\n"); - fflush(stderr); + if (debug) { + fprintf(stderr, "... freeing MRU entries\n"); + fflush(stderr); + } ITER_DLIST_BEGIN(mru_list, recent, mlink, mru) free(recent); ITER_DLIST_END() - // if (debug) !!!!! - fprintf(stderr, "... freeing hash_table[]\n"); - fflush(stderr); + if (debug) { + fprintf(stderr, "... freeing hash_table[]\n"); + fflush(stderr); + } free(hash_table); hash_table = NULL; INIT_DLIST(mru_list, mlink);