rename data_config_pcre_exec() to config_pcre_match()
and move logic saving pcre result state from
config_check_cond_nocache()
split config_check_cond_nocache() into two funcs
config_check_cond_nocache() participates in recursion
config_check_cond_nocache_eval() evaluates the condition
save config regex captures separately only if used by url.redirect
or url.rewrite replacement directives within the condition
(or for conditions containing directives from any other module
which calls config_capture() for its directives during init)
keep pointer to match data (cond_match_t *) in r->cond_match[]
rather than cond_match_t to reduce data copying in h2_init_stream().
h2_init_stream() copies the results for already-evaluated conditions
to avoid re-evaluating connection-level conditions for each and every
stream. When conditions are reset, then the pointer in r->cond_match[]
is updated when the condition is re-evaluated. (This all assumes that
HTTP/2 connection-level conditions are not unset or re-evaluated once
HTTP/2 streams begin.)
checkpoint (experimental) json output (disabled) from mod_dirlisting
Soliciting feedback from anyone who might write client javascript
employing json output from mod_dirlisting. What should be changed?
(thx dinoex)
fix removal of server.pid-file when testing config with lighttpd -tt
(regression in lighttpd 1.4.60, 1.4.61)
x-ref:
"Test the configuration file while lighttpd is running."
https://redmine.lighttpd.net/issues/3115
warn if known dynamic modules listed before mod_auth in server.modules
e.g. mod_auth must be listed before mod_fastcgi in server.modules
for fastcgi.server = ( "mode" => "authorizer" ) to work properly
(thx ThomasDevoogdt)
close backend socket fds more quickly by polling with zero timeout when
there are pending fds scheduled to be closed after the next poll.
x-ref:
"Slow request handling in Lighttpd 1.4.60"
https://redmine.lighttpd.net/boards/2/topics/10063
buffer_append_strftime() requires a non-NULL const string for format
buffer_append_string_encoded() and buffer_append_string_c_escaped()
both will handle encoding a 0-length string. Since a 0-length string
is not expected, do not special-case it. C type buffer_encoding_t
expects a constant value to be passed, so encoding map is not NULL.
connection_handle_write_state() call to subrequest handler might set
r->resp_body_finished, but we need to check if r->write_queue is empty
before changing state from CON_STATE_WRITE to CON_STATE_RESPONSE_END
(If r->write_queue was already empty when the subrequest handler marked
resp_body_finished, connection_state_machine_h2() could miss changing
the request state to CON_STATE_RESPONSE_END)
x-ref:
"HTTP/2 requests sometimes take very long (missing last chunk)"
https://redmine.lighttpd.net/issues/3111
"Slow request handling in Lighttpd 1.4.60"
https://redmine.lighttpd.net/boards/2/topics/10063