Changes in 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.
