Glenn Strauss
dd91c1459c
[core] http_response_config()
...
split from http_response_prepare()
2020-07-08 19:54:29 -04:00
Glenn Strauss
3f4f934485
[core] http_response_comeback()
...
group HANDLER_COMEBACK logic in http_response_comeback() and call it
from places that reset state in order to (sometimes partially) reprocess
a request. This includes error handler (server.error-handler),
r->handler_module when cgi.local-redir, and looping in
http_response_prepare() when modules make changes to the request and
return HANDLER_COMEBACK (e.g. mod_rewrite, mod_magnet, mod_cml)
Also, set r->conditional_is_valid closer to where elements are set
(and become valid for use in condition checks), and parse target
in http_request_parse() instead of http_response_prepare()
2020-07-08 19:54:29 -04:00
Glenn Strauss
a0029b21a1
[core] remove r->uri.path_raw; generate as needed
...
(r->uri.path_raw previously duplicated from r->target, minus query-part)
2020-07-08 19:54:29 -04:00
Glenn Strauss
9aa0b3409e
[mod_magnet] modify r->target with "uri.path-raw"
2020-07-08 19:54:29 -04:00
Glenn Strauss
d013d0abd3
[core] http_request_parse_target()
...
http_request_parse_target() split from http_response_prepare()
2020-07-08 19:54:29 -04:00
Glenn Strauss
34285ed0fa
[core] dispatch handler in handle_request func
...
dispatch handler in connection_handle_request()
instead of in http_response_prepare()
2020-07-08 19:54:29 -04:00
Glenn Strauss
c8a1cba0c1
[tests] t/test_mod_userdir
...
create t/test_mod_userdir to replace sparse tests in tests/mod-userdir.t
remove tests/mod-userdir.t
2020-07-08 19:54:29 -04:00
Glenn Strauss
8b7e110973
[tests] stub out config funcs in test_mod_*
2020-07-08 19:54:29 -04:00
Glenn Strauss
9914bb297b
[core] C99 restrict on some base funcs
...
buffer.[ch], chunk.[ch], request.[ch], sock_addr.[ch]
2020-07-08 19:54:29 -04:00
Glenn Strauss
c687e01c98
[core] r->uri.path always set, though might be ""
...
(might be "" if <backend>.server sets "fix-root-scriptname" => "enable")
2020-07-08 19:54:29 -04:00
Glenn Strauss
7c7f8c467c
[multiple] split con, request (very large change)
...
NB: r->tmp_buf == srv->tmp_buf (pointer is copied for quicker access)
NB: request read and write chunkqueues currently point to connection
chunkqueues; per-request and per-connection chunkqueues are
not distinct from one another
con->read_queue == r->read_queue
con->write_queue == r->write_queue
NB: in the future, a separate connection config may be needed for
connection-level module hooks. Similarly, might need to have
per-request chunkqueues separate from per-connection chunkqueues.
Should probably also have a request_reset() which is distinct from
connection_reset().
2020-07-08 19:54:29 -04:00
Glenn Strauss
cc2134c88b
[multiple] copy small struct instead of memcpy()
...
when patching config
2020-07-08 19:54:29 -04:00
Glenn Strauss
31d9495330
[core] store subrequest_handler instead of mode
...
store pointer to module in handler_module instead of con->mode id
2020-07-08 19:54:29 -04:00
Glenn Strauss
eea7cd3c2f
[core] store (plugin *) in p->data
...
(self-referential)
2020-07-08 19:54:29 -04:00
Glenn Strauss
aca9d45adf
[core] move request state into (request_st *)
...
NB: in the future, a separate connection state may be needed for
connection-level state (different from request state)
2020-07-08 19:54:29 -04:00
Glenn Strauss
a22cdca1cb
[core] move addtl request-specific struct members
2020-07-08 19:54:29 -04:00
Glenn Strauss
100dfaa3f3
[core] move plugin_ctx into (request_st *)
...
NB: in the future, a separate plugin_ctx may be needed for
connection-level plugins to keep state across multiple requests
2020-07-08 19:54:29 -04:00
Glenn Strauss
8131e4396d
[core] move addtl request-specific struct members
2020-07-08 19:54:29 -04:00
Glenn Strauss
1474be7859
[core] move addtl request-specific struct members
2020-07-08 19:54:29 -04:00
Glenn Strauss
6fe031ef37
[core] move request start ts into (request_st *)
...
move request start timestamps into (request_st *)
2020-07-08 19:54:29 -04:00
Glenn Strauss
b157ee8dfa
[mod_accesslog] log_access_record() fmt log record
...
separate func to append log record to buffer
2020-07-08 19:54:29 -04:00
Glenn Strauss
88ac4367f0
[core] (const connection *) in http_header_*_get()
2020-07-08 19:54:29 -04:00
Glenn Strauss
3648d2908e
[core] t/test_request.c using (request_st *)
...
further isolate t/test_request.c tests to use (request_st *)
2020-07-08 19:54:29 -04:00
Glenn Strauss
af5df35275
[core] rename content_length to reqbody_length
...
rename content_length to reqbody_length in request,
to more easily differentiate request body length
from response content_length
2020-07-08 19:54:29 -04:00
Glenn Strauss
8c46768d5b
[core] remove unused request_st member 'request'
2020-07-08 19:54:29 -04:00
Glenn Strauss
6870b0f55b
[core] pass (request_st *) to request.c funcs
...
instead of (struct connection *)
2020-07-08 19:54:29 -04:00
Glenn Strauss
668cb6418f
[core] move request_st,request_config to request.h
2020-07-08 19:54:29 -04:00
Glenn Strauss
550faf988c
[core] rename specific_config to request_config
2020-07-08 19:54:29 -04:00
Glenn Strauss
af3313bfa5
[core] pass http_parseopts around request.c
2020-07-08 19:54:29 -04:00
Glenn Strauss
6748a58cca
[core] pass scheme port to http_request_parse()
...
con->proto_default_port is a property of the connection,
which influences the default port used in host normalization
2020-07-08 19:54:29 -04:00
Glenn Strauss
057d83c50b
[core] move keep_alive flag into request_st
2020-07-08 19:54:29 -04:00
Glenn Strauss
33430ce2b0
[core] copy some srv->srvconf into con->conf
...
(for memory locality and to reduce pointer chasing)
2020-07-08 19:54:29 -04:00
Glenn Strauss
5bbe58728d
[core] perf: buffer copy and append
...
reorder some code
add more const
avoid redundant asserts
2020-07-08 19:54:29 -04:00
Glenn Strauss
0d62b8657b
[mod_webdav] use copy_file_range() if available
2020-07-08 19:54:29 -04:00
Glenn Strauss
3f7779d247
[core] restart dead piped loggers every 64 sec
...
(when piped logger exited too quickly after being restarted
and when server.max-worker = 0)
2020-07-08 19:54:29 -04:00
Glenn Strauss
2c18090216
[core] remove include base.h where unused
2020-07-08 19:54:29 -04:00
Glenn Strauss
66bdd96d36
[core] isolate stat_cache subsystem
...
stat_cache.c no longer directly uses struct server *srv
2020-07-08 19:54:29 -04:00
Glenn Strauss
8588772caa
[core] isolate fdevent subsystem
...
fdevent.c no longer directly uses struct server *srv
srv->srvconf.max_fds (if set) is used to set rlimits
set max_conns in server.c after fdevent_init(), which sets srv->max_fds
using srv->srvconf.max_fds (if set) as input hint
2020-07-08 19:54:29 -04:00
Glenn Strauss
6dfe0b9a16
[core] slightly simpify server_(over)load_check()
2020-07-08 19:54:29 -04:00
Glenn Strauss
48004c6a7c
[core] remove unused arg to fdevent_fcntl_set_nb*
2020-07-08 19:54:29 -04:00
Glenn Strauss
05cc88ddb4
[multiple] omit passing srv to fdevent_handler
2020-07-08 19:54:29 -04:00
Glenn Strauss
fda01e3305
[core] support multiple error logs
...
e.g. different server.errorlog for different virtual hosts
Also, support different server.breakagelog to have separate script
error logs, applicable to mod_cgi and mod_ssi exec.
2020-07-08 19:54:29 -04:00
Glenn Strauss
19985261b2
[core] convenience macros to check req methods
2020-07-08 19:54:29 -04:00
Glenn Strauss
27e27e5e40
[core] static buffers for mtime_cache
2020-07-08 19:54:29 -04:00
Glenn Strauss
b4a0ec05fd
[core] include settings.h where used
2020-07-08 19:54:29 -04:00
Glenn Strauss
4069dc2ad7
[mod_accesslog] flush file log buffer at 8k size
2020-07-08 19:54:29 -04:00
Glenn Strauss
f7d492ae0e
[mod_webdav] large buffer reuse
...
employ chunk_buffer_acquire() and chunk_buffer_release()
2020-07-08 19:54:29 -04:00
Glenn Strauss
3cd74a16a2
[core] fdevent uses uint32_t instead of size_t
2020-07-08 19:54:29 -04:00
Glenn Strauss
d5fd52ee86
[core] separate log_error_open* funcs
...
separate log_error_open* funcs to open breakagelog, filename, syslog
2020-07-08 19:54:29 -04:00
Glenn Strauss
6c1d57a29a
[core] store log filename in (log_error_st *)
2020-07-08 19:54:28 -04:00