It seems this is actually allowed by the RFCs; although it is intended
as HTTP/1.0 backward compatibility, and HTTP/1.1 servers (backends)
really should do better.
Change-Id: I93265bfe7fae57beb10d70d3a4596c5cae7b51bd
... so li_stream_simple_socket_close doesn't need to acquire (when the rc might already be 0).
Instead call li_iostream_reset in all places that didn't acquire before,
and drop the acquire.
Change-Id: I347f49eb57989738ed811a1f3a31b8942ff32881
- use decoded path instead of orig raw path (which includes the query
string); the decoded path should be safe, and we also really don't
need to support any "raw" handling - we're at the filesystem level
anyway.
Change-Id: Ic9a5b362bea9813873631b18aaa908c59f2bb0a6
Even if they shouldn't (due to HTTP/1.0 or Connection; close) some
backends send HTTP/1.1 without Connection: close, and use Content-Length
to signal end of response (and don't close the connection, as they wait
for another request).
Now Content-Length is used to find the end of the response (chunked
transfer-encoding was already supported).
mod_proxy now signals HTTP/1.1, but also sends "Connection: close": it
doesn't reuse the connection yet.
Change-Id: Ica0c9b3b7da79899412a746f21e7348ccd3d23ee
readdir_r is deprecated in glibc due to serious memory handling issues
in the API: one cannot pass the size of the allocated dirent.
glibc authors claims readdir is thread-safe in modern implementations,
and expect POSIX to require it in a future version.
No way to check whether readdir is thread-safe though :(
("thread-safe" in this context means different directory streams, which
is good enough.)
Also remove li_dirent_buf_size.
Change-Id: Ia5eae3327e97dc4b0751fb2604ea21c0ce09a5f9
- ENAMETOOLONG:
- static, flv: return 414
- dirlist, pathinfo: treat as not-existing (i.e. no handling)
- also return 500 instead of closing the connection when stat/open
fails an unhandled error
- explicit return instead of switch-case fallthrough (no semantic
change) in actions.c
Change-Id: I1e2dd721dd18544500b4436ada843cb6e7f2db72
- simulates an implicit "<![CDATA[ ... ]]>" mode
- if the blocks consists of a single CDATA node entities are not decoded;
instead the CDATA content is used directly.
Change-Id: Ifc25d4ae49518d6d219a70d5760c214cafe0ed46
- also check for number of attempts instead of flags,
the same the gnutls internal callback is doing when a
password is passed
Change-Id: I84f5a0c7a4e3aea6f55b7b28c2f57019128351c7