-
Notifications
You must be signed in to change notification settings - Fork 15
/
Changelog
412 lines (267 loc) · 9.47 KB
/
Changelog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
Changes in 2.0.0
----------------
The major version doesn't indicate big changes, only that htpdate is 2 decades old!
- bugfix incorrect "estimated error" (relevant for "-x" option)
- improvement: make all implicit conversions explicit
- improvement: take network latency into account
- change: log to stderr instead of stdout when using "-F"
1.3.7
-----
- bugfix: wrong default portnumber for proxy was used
- bugfix: https://bugs.launchpad.net/ubuntu/+source/htpdate/+bug/1850740
- improvement: Avoid bouncing between upper/lower limit when (almost) in sync
- improvement: Set SSL server hostname on SSL object
1.3.6
-----
- Fix when correcting large time offsets (bug introduced in 1.3.5)
1.3.5
-----
- Feature: set kernel synchronized (e.g. timedatectl will report
'System clock synchronized: yes')
- Improved time tuning accuracy/stability
1.3.4
-----
- fix small memory leak in strdup
- fix free in case of DNS lookup failure
- other minor updates
1.3.3
-----
- fix compatibility issue with uClibc
- fix for time offset > 1s
- additional time offset fine tuning
1.3.2
-----
- fine tuning time adjustment
- added missing '-f' from usage
- fix ntp_adjtime/adjtimex
1.3.1
-----
- Read/write clock driftfile (-f) has been added.
- Multiple small bug fixes
1.3.0
-----
- This release is the biggest update in a decade
- accuracy has improved with a new algorithm (bisect)
- usage of '-p' option has change, '-p 9' allows accuracy in the range of ~10 ms
- removed '-b' option, burst mode
- HTTPS support has been added (no certificate validation!)
1.2.4
-----
- Several updates/fixes from fork maintained by Angelo Compagnucci
- https://github.com/angeloc/htpdate
- Added foreground '-F' (thanks to larsluthman)
- An incorrect drop privileges fix
- Support for multiple verbose/debug levels with -dd and -ddd
- Use http_proxy environment variable
- Added '-n' to ignore this environment variable
- Replaced deprecated asctime(), gettimeofday(), timegm()
- Removed the use of mktime()
- Removed the vim modeline formatting
1.2.3
-----
- Support URL path to be included, hostname/path, e.g. htpdate www.example.com/htpdate.html
- Included several fixes as used in Chromium OS (thanks to Mike Frysinger)
- Release on github
- Bug fix: dropping privileges, when not specified
1.2.2
-----
- Doc change only (removed reference to FreeBSD and Linux)
1.2.1
-----
- Fix initialization of strptime()
1.2.0
-----
- Fix for port numbers that were not used in daemon mode (thanks to Matthew Jones)
- Discard the use of local time offset, because it causes incorrect synchronisation when TZDATA isn't correct, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=876687 (thanks for Mert Dirik)
1.1.3
-----
- Fixed a year 2038 issue on 32-bit systems (thanks to Ansel Consulting)
1.1.2
-----
- Security fix: setegid wasn't always applied
- Fixed compiler warning 'ignoring return value' for recent gcc versions
1.1.1
-----
- Fixed out of bound issue and a missing null-terminated string (thanks to Tobias Stöckmann)
1.1.0
-----
- Removed Debian and RPM specific information
- Fixed manpage issues (thanks to Eriberto)
1.0.7
-----
- Fixed an incorrect bug fix in 1.0.6.
1.0.6
-----
- Bug fix for https://bugs.gentoo.org/show_bug.cgi?id=350685
(Thanks Diego Augusto Molina for the bug report and Pavel Kazakov for
debugging)
1.0.5
-----
- Change of e-mail/website
- Fix for debian build
1.0.4
-----
- Fixed a memory leak (reported and fixed by Andreas Bohne-Lang)
1.0.3
-----
- Fixed logic error... 1.0.2 is broken :(
1.0.2
-----
- Fixed a buffer overflow when time offset gets too large
https://dev.openwrt.org/cgi-bin/trac.fcgi/ticket/3940
1.0.1
-----
- Added "burst mode" (-b) to enhance accuracy.
- Extended debug output
- Removed potential buffer overflows vulnerabilities.
- Replaced usleep by nanosleep (which is more portable).
- Included debian package.
1.0.0
-----
- Cleanup/simplified the code.
- Again a more robust implementation of the "-p" (precision) switch.
0.9.3
-----
- Bug fixes: poll loop could be become close to zero in case of a "connection
failed". Sleeptime wasn't correct in case all hosts fail.
- Use more "sane" minsleep and maxsleep values.
0.9.2
-----
- The use of the ntp_adjtime system call is now optional. The clock
frequency will be adjusted when using the "-x" switch and the systematic
drift will be compensated. Works only in daemon mode.
0.9.1
-----
- Htpdate can drop root privileges and run as a restricted user.
- Drift calculation starts now after first time correction.
0.9.0
-----
- Mostly code cleanup
- Changed "char" variables into "int", which should be more efficient
- Changed the qsort routine, into an insertion sort. Quicksort is
kind of overkill for such small lists.
- Debug mode is allowed in daemon mode.
0.8.8
-----
- Speeded up the poll cycle loop, once a time offset has been detected.
- Added systematic drift to the syslog logging (daemon only).
The "adjtimex_parameters.sh" script may help to reduce the drift of your
system clock.
- Changed "precision" from micro into milliseconds.
- Changed manpage directory from /usr/man into /usr/share/man.
- HTTP/1.1 has become the default
0.8.7
-----
- Bug fix: with precision set, the time could only be adjusted
negative (slow down).
- Fixed undesired effects in (rare) cases when using only a few servers.
- Exit code changed to 1 if no server was found (requested by Supernaut).
0.8.6
-----
- Reintroduction of the "-p" switch. The "precision" determines more accurate
when a time adjustment is needed. The implementation of precision is much
beter than the one in the past.
0.8.5
-----
- Changed the variable type of "param" from char into int (thanks to
Arnaud Mazin). GCC 3.4.x is less forgiving than older versions.
- Made compare function for qsort more robust (avoiding overflow).
0.8.4
-----
- Finaly added IPv6 support!
- If you would lose internet connectivity, htpdate would flood the system
(CPU and log). A patch submitted by Peter Surda, has been included.
- Removed -0 switch (HTTP/1.0), since this is the default anyway.
0.8.3
-----
- Fixed that "when" wasn't properly initialized in every poll cycle. This
bug fix reduces jitter when system time is close to the correct time.
- Added missing "-t" switch to the manpage.
- Added warning message if more than 16 servers are specified.
- Htpdate double forks now, like a proper daemon :)
- vim setting are added to the source (set ts=4)
0.8.2
-----
- Fixed a major bug in offset calculation (caused by changing the rtt type
from double to unsigned long)
0.8.1 (broken)
--------------
- Correction install paths in Makefile, added uninstall option
- Added "-t" switch, which disables time sanity checking (requested for
devices, like supported by openwrt, which boot/startup at "epoch" time)
0.8.0
-----
- Lots of code clean up, eg.:
- compiles with the -ansi switch (for better portability, but only
tested on Linux and FreeBSD)
- Compiles with Tiny C Compiler (tcc) and Intel C compiler (icc)
- Restored compatibility with FreeBSD (timezone calculation).
- A second poll is made if a time offset has been detected.
- Removed the switches "-t" and "-x". In daemon mode htpdate will only adjust
time. With the "-s" switch htpdate will set the time once at startup and
after that only smooth adjusts are made.
- Added "-l" switch, which enables logging to syslog in non-daemon mode.
Convinient if htpdate is used from cron.
- Added "-0" to make an HTTP/1.0 request and "-1" for HTTP/1.1
0.7.2
-----
- Minor bug fix. When running in daemon mode TCP connections weren't cleaned up
properly (sockets remained in CLOSE_WAIT status).
0.7.1
-----
- Bug fix. Poll cycle could become very very short (seconds...) in some
cases.
0.7.0
-----
- The polling mechanisme has been improved once more :)
As of this version polls are also spread within the polling cycle.
This way a time offset will be detected earlier, without increasing the
polling frequency.
- Sleeptime isn't writen to syslog anymore, only time adjustments
- Previous versions of htpdate tried to close a already closed HTTP/1.0
session.
- The rpm version doesn't override the init-script anymore
0.6.2
-----
- Bug fix, time wasn't correct if 'timeavg' was negative...
0.6.1
-----
- Code clean up, use global variable 'timezone'
0.6
---
- New poll schedule mechanisme has been introduced!
This results in a better spreading of the polls in time to
gain some extra accuracy.
- Removed the -p (precision) flag, because it has become obsolete with
the new poll scheduling mechanisme.
- Extended 'debug mode' output with round trip time (rtt) information.
- Sleeptime parameters are no longer in seconds, but in 2^n seconds.
0.5
---
- Added relevant header files, so gcc -Wall compiles without warnings.
- Added -p switch, to set the precision of htpdate. The polling rate
is affected by this switch (high precision -> more frequent polling).
0.4
---
- Spread the individual time polls better, to gain accuracy with
a small number of web servers as source
- Added debug mode, so you can value the quality of the timestamps
from web servers
- Minor correction on HEAD request (removed max-age=0)
- pid file is created
- Added htpdate init script
0.3
---
- Run htpdate as a daemon
- automatic set/adjust time, based upon offset
- automatic poll interval
- Added manpage
- Added RPM
- Minor bug fixes
0.2
---
- Htpdate can set or adjust time smoothly now, without calling external
programs
0.1
---
- Initial release. Htpdate extracts the raw timestamp from a webserver.