4.107

Refined event handling.

4.106

Prospero now collects and passes client Accept-Language request values to SCGI
servers.

Prospero now collects SCGI server Content-Language values and passes them to
clients. If an SCGI server does not return a Content-Language and a system
Content-Language is defined (-a), the system header is added to the SCGI
response.

4.105

Removed code and manual content related to the -n option, which has long been
disabled.

4.104

Added support for Content-Language response header lines. See the manual page
for a description of the -a option.

4.103

Shut off source read events in respond_static_ktls() when it is waiting
for a socket event.

4.102

Corrected bug that caused server to incorrectly process range requests when
using Kernel TLS to deliver files.

4.101

Modified clear_events() to not take address of item past end of outqueue.

4.100

Forgot to update time value for connections that use SSL_sendfile(). The
time value is used to timeout idle connections.

4.99

Added support for in-kernel TLS processing. This enhances performance on busy
systems. See the section of the manual page titled SYSTEM CONFIGURATION.

4.98

Made server log error message when clients (I'm looking at you, Safari) fail
to deliver POST request bodies.

4.97

Replaced invocations of SSL_pending() with SSL_has_pending() to avoid hangs.
Removed invocations of SSL_set_mode(), and shutdown() to simplify code.

4.96

Corrected bug introduced in 4.95 that prevented accurate count of total number
of connections, which could produce an infinite loop in add_conn() when the
max_conn connections had been accepted.

4.95

Turned off the timer if all connections are established WebSocket connections.
The timer does nothing in this instance because WebSocket servers are
responsible for timing out their connections.

4.94

Prospero permits requests for .gzip and .zip files without a Referer header.

4.93

Corrected bug that prevent -l from working.

4.92

Removed the -z, -a, and -t options.

4.91

Changed the response to User-Agents prohibited with -z options.  The
server now responds with a 403 Forbidden response.

4.90

Changed how the -z mechanism works.

4.89

Added the -z option to reject requests from specific user agents.

4.88

Corrected a bug that would crash the server in low memory conditions.

4.87

Prospero now logs an informative error message when an SCGI response
header line is too long.

4.86

Fixed bug that would cause server to continue to process an SCGI response
when out of memory.

4.85

Refined low memory detection.

4.84

The length of SCGI request and response headers is now unlimited.  The
actual limit of SCGI request headers is a side-effect of the setting of the
-b option.  That option determines the longest possible request header
line.

4.83

Added the port number to log entries (c-ip) so that you can see how many
connections each cient address makes.

IPv6 and IPv6-mapped IPv4 addresses are now wrapped in brackets to
distinguish those addresses from IPv4 addresses and to distinguish the port
from the address.

4.82

Prospero now redirects requests on port 80 to port 443 with 301 responses
that contain Location headers that contain the path from the request instead
of the root path.

4.81

Added User-Agent to request log lines.

4.80

Corrected bug in address cache used when the -a option is present.

4.79

Refined Host, Origin, and Referer header validation.

4.78

Corrected bug that prevented correct Host, Origin, and Referer headers from
being recognized if they specified an insecure URL that contained the port
number.

4.77

Increased IOBUFSIZE (the -b option) to 1024 to accomodate larger netstrings
for SCGI programs.

4.76

Added -a option to limit the number of simultaneous connections per
client IP address.

Prospero now propagates REMOTE_ADDR to SCGI servers.

4.75

Refined signal handling to support request logging.

4.74

Refined signal handling to support request logging.

4.73

Added -l option to support request logging.

4.72

Corrected bug that would not free the Sec-GPC header.  If that header was
present in a request, a memory leak would result.

Added propagation of the User-Agent header to SCGI servers.

4.71

Corrected bug that would cause server to continue to read requests
whose first line did not contain a request.

4.70

Corrected bug in event-scrubbing loop.

4.69

Fixed memory access bug.

4.68

Fixed bug that prevented prospero from delivering empty files.

4.67

Removed incorrectly used 204 NO CONTENT response from possible error
values.

4.66

Corrected bug in error reporting code that accessed a freed pointer.

4.65

Turned on OpenSSL option SSL_OP_IGNORE_UNEXPECTED_EOF.

4.64

Mods to SCGI code.  No user-visible changes.

4.63

HTML error messages are now preceded with <!DOCTYPE html>.

4.62

Changed SCGI variable name SEC_GPC to HTTP_SEC_GPC.
Added SCGI variables HTTP_IF_MODIFIED_SINCE and HTTP_IF_UNMODIFIED_SINCE.

Added back must-revalidate to Cache-Control headers.

4.61

Removed must-revalidate from Cache-Control headers.

4.60

Added -n option to prevent a Cache-Control directive from being inserted
into SCGI response headers that lack a Cache-Control directive.
