[core] reset connection-level state at con level

clean up some HTTP/1.x code assumptions before HTTP/2 support added
This commit is contained in:
Glenn Strauss 2023-08-08 11:51:02 -04:00
parent 7db6ebebdc
commit 22c2f3bbb7
3 changed files with 5 additions and 2 deletions

View File

@ -83,6 +83,7 @@ static void connection_close(connection *con) {
chunkqueue_reset(con->read_queue);
con->request_count = 0;
con->is_ssl_sock = 0;
con->traffic_limit_reached = 0;
con->revents_err = 0;
fdevent_fdnode_event_del(srv->ev, con->fdn);
@ -617,6 +618,10 @@ connection *connection_accepted(server *srv, const server_socket *srv_socket, so
sock_addr_cache_inet_ntop_copy_buffer(&con->dst_addr_buf,
&con->dst_addr);
con->srv_socket = srv_socket;
/* recv() immediately after accept() fails (on default Linux for TCP);
* so skip optimistic read. (might revisit with HTTP/3 UDP) */
/*con->is_readable = 1;*/
con->is_writable = 1;
con->is_ssl_sock = srv_socket->is_ssl;
con->proto_default_port = 80; /* "http" */

View File

@ -336,7 +336,6 @@ static void http_response_header_clear (request_st * const r) {
void http_response_reset (request_st * const r) {
r->http_status = 0;
r->con->is_writable = 1;
r->handler_module = NULL;
if (r->physical.path.ptr) { /*(skip for mod_fastcgi authorizer)*/
buffer_clear(&r->physical.doc_root);

View File

@ -744,7 +744,6 @@ http_response_call_error_handler (request_st * const r, const buffer * const err
chunkqueue_reset(&r->reqbody_queue);
}
r->con->is_writable = 1;
r->error_handler_saved_status = r->http_status;
r->error_handler_saved_method = r->http_method;
r->http_method = HTTP_METHOD_GET;