diff options
author | Glenn Strauss <gstrauss@gluelogic.com> | 2017-07-14 01:29:18 -0400 |
---|---|---|
committer | Glenn Strauss <gstrauss@gluelogic.com> | 2017-07-23 19:02:00 -0400 |
commit | 45b970e69b144c7eaa5508fbb55728cb7c731caf (patch) | |
tree | ea5f83a2c4f56910402a2e54fd1a62f721af0fb7 /src/response.h | |
parent | 81b8fffd311355cb65ab335c760d2e63471eb782 (diff) | |
download | lighttpd-git-45b970e69b144c7eaa5508fbb55728cb7c731caf.tar.gz |
[core] shared code for socket backends
common codebase for socket backends, based off mod_fastcgi with
some features added for mod_proxy
(mostly intended to reduce code duplication and enhance code isolation)
mod_fastcgi and mod_scgi can now use fastcgi.balance and scgi.balance
for similar behavior as proxy.balance, but the balancing is per-host
and not per-proc. proxy.balance is also per-host and not per-proc.
mod_proxy and mod_scgi can now use proxy.map-extensions and
scgi.map-extensions, similar to fastcgi.map-extensions.
mod_fastcgi behavior change (affects only mod_status):
- statistics tags have been renamed from "fastcgi.*" to "gw.*"
"fastcgi.backend.*" -> "gw.backend.*"
"fastcgi.active-requests" -> "gw.active-requests"
("fastcgi.requests" remains "fastcgi.requests")
("proxy.requests" is new)
("scgi.requests" is new)
mod_scgi behavior change (likely minor):
- removed scgi_proclist_sort_down() and scgi_proclist_sort_up().
procs now chosen based on load as measured by num socket connnections
Note:
modules using gw_backend.[ch] are currently still independent modules.
If it had been written as a single module with fastcgi, scgi, proxy
implementations, then there would have been a chance of breaking some
existing user configurations where module ordering made a difference
for which module handled a given request, though for most people, this
would have made no difference.
Details about mod_fastcgi code transformations:
unsigned int debug -> int debug
fastcgi_env member removed from plugin_config
renamed "fcgi" and "fastcgi" to "gw", and "FCGI" to "GW"
reorganize routines for high-level and lower-level interfaces
some lower-level internal interfaces changed to use host,proc,debug
args rather than knowing about higher-level (app) hctx and plugin_data
tabs->spaces and reformatting
Diffstat (limited to 'src/response.h')
-rw-r--r-- | src/response.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/response.h b/src/response.h index d0ddc90b..cd268394 100644 --- a/src/response.h +++ b/src/response.h @@ -35,8 +35,9 @@ typedef struct http_response_opts_t { unsigned short local_redir; unsigned short xsendfile_allow; array *xsendfile_docroot; - handler_t(*parse)(server *, connection *, struct http_response_opts_t *, buffer *, size_t); void *pdata; + handler_t(*parse)(server *, connection *, struct http_response_opts_t *, buffer *, size_t); + handler_t(*headers)(server *, connection *, struct http_response_opts_t *); } http_response_opts; typedef int (*http_cgi_header_append_cb)(void *vdata, const char *k, size_t klen, const char *v, size_t vlen); |