[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:
parent
7db6ebebdc
commit
22c2f3bbb7
|
@ -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" */
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue