Version 1.29, Mon, 08 May 2023 20:01:27 +0200

  Some small modification to prevent a warning from gcc version 10.2.1.

Version 1.28, Mon, 28 Sep 2020 01:37:10 +0200

  Reduced STATELOCATOR_LIFETIME to 60 seconds.

Version 1.27, Sat, 18 Jul 2020 16:02:13 +0200

  Cosmetic changes.

Version 1.26, Fri, 17 Jul 2020 23:19:46 +0200

  Changed the socket read() timeout to 2 seconds.
  Change of logic. The decision whether to continue reading from the socket
    now provides a function that examines the content of the HTTP request.
    In this way, maximum performance is achieved on the one hand and
    on the other hand it is ensured that all data has been read.

Version 1.22, Wed, 15 Jul 2020 15:41:25 +0200

  Replaced the forever-blocking socket read() by a blocking
    read() that returns after a small amount of milliseconds.
    In this way reading in chunks could also be reintroduced.

Version 1.21, Mon, 13 Jul 2020 15:18:40 +0200

  The concept is now as follows.
    All blockable signals are blocked.
    So asynchronous signals are not able to interrupt a syscall.
    The function accept() blocks.
    The function read() blocks when reading from a socket.
    The function write() has been replaced by send() to get able to enter per-call flags.
    These flags enable nonblocking operation and disable SIGPIPE generation.
    Functions that work over a socket never terminate the thread or process, including close().

Version 1.4, Sun, 21 Jun 2020 00:38:17 +0200

  Complete suppression of the effects of signals from space.

Version 1.3, Sat, 20 Jun 2020 17:58:25 +0200

  Changed signal handler installation to become clearer.
  Introduced signal mask installation to prevent threads
    from occasionally disappearing for no apparent reason.

Version 1.2, Mon, 25 May 2020 12:00:15 +0200

  Substituted the GNU-specific version of `strerror_r()' for `strerror()'.

Version 1.1, Wed, 06 May 2020 01:10:56 +0200

  First public version.

Stephan K.H. Seidl