Changelog
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