Protocols.HTTP: - Don't modify the mapping sent to response_and_finish. Unsuspecting users that pass a constant mapping to response_and_finish when a particular error occurs (or when a particular URL is requested) can fail if response_and_finish alters the mapping. For example, future requestes may retain a 416 error if one request uses the Range: header.
- Support async keep-alive in Protocols.HTTP.Query. Fixes [bug 7143].
Protocols.SMTP: send_message() now punicodes the hostname. Potential fix for [bug 6531]. Protocols.SNMP: Fixed error in GetRequest variable bindings. The variable value should be ASN1 "Null" rather than a bogus integer. C.f. RFC 1905 section #3. Sql.rsql:
Potential fix for [bug 6582]. - sslfile: Added linger(). Implemented linger() API. The linger time is propagated to the raw socket, and additionally a linger time of zero inhibits sending of the close packet. Stdio:
- cp() detects ouroboros and avoids infinite loops and file truncation.
- Reduce number of system calls in mkdirhier(). - Call fd_select() before fd_accept() in my_socketpair() to make sure it's ready. Added support for poll() to the fd_accept() check in my_socketpair() and lowered the select() timeout. - Added linger(), to change the linger time on sockets. - Fixed a bug in Stdio.FakeFile::read_function() where read data wasn't returned.