summaryrefslogtreecommitdiffhomepage
path: root/src/nxt_h1proto.c (follow)
AgeCommit message (Collapse)AuthorFilesLines
2020-09-18Fixed segmentation fault during reconfiguration.Igor Sysoev1-7/+3
If idle connection was closed before h1proto had been allocated then c->socket.data is NULL. This happens if nxt_h1p_idle_response() is called by nxt_h1p_idle_close(). However, h1p->conn_write_tail is used only in nxt_h1p_request_send() that would not be called after nxt_h1p_idle_response(). The bug was introduced in f237e8c553fd.
2020-09-18Fixed segmentation fault during reconfiguration.Igor Sysoev1-1/+9
2020-09-18Fixed use-after-free error during reconfiguration.Igor Sysoev1-0/+2
An idle connection was not removed from idle connection list if the connections detected that listening socket had been closed.
2020-08-05Improved mkstemp() error reporting.Valentin Bartenev1-1/+1
The invocation parameters should be logged as well, notably the path of the file that is failed to be created. Also, log level changed to ALERT as it's quite critical error.
2020-06-23Upstream chunked transfer encoding support.Igor Sysoev1-14/+87
2020-04-16Using malloc/free for the http fields hash.Max Romanov1-3/+3
This is required due to lack of a graceful shutdown: there is a small gap between the runtime's memory pool release and router process's exit. Thus, a worker thread may start processing a request between these two operations, which may result in an http fields hash access and subsequent crash. To simplify issue reproduction, it makes sense to add a 2 sec sleep before exit() in nxt_runtime_exit().
2020-04-15Fixed crash that occurs when idle connections are closed forcibly.Igor Sysoev1-6/+31
2020-03-21Implemented "location" option for "return" action.Valentin Bartenev1-0/+2
This allows to specify redirects: { "action": { "return": 301, "location": "https://www.example.com/" } }
2020-03-19Completing buffers immediatelyMax Romanov1-5/+2
This fixes crash introduced in 039b00e32e3d.
2020-03-19Completing request header buffers to avoid memory leak.Max Romanov1-20/+26
Before this fix, only persistent connection request buffers were completed. This issue was introduced in dc403927ab0b.
2020-03-12Using disk file to store large request body.Max Romanov1-26/+152
This closes #386 on GitHub.
2020-03-12Checking Content-Length value right after header parse.Max Romanov1-5/+0
The check was moved from the request body read stage.
2020-03-06Round robin upstream added.Igor Sysoev1-1/+2
2019-12-24Introducing write tail reference to avoid buffer chain iteration.Max Romanov1-4/+15
2019-11-14Processing inconsistent proxied response length.Igor Sysoev1-0/+1
Keepalive connection is disabled if upstream response length differs from specified in the "Content-Length" field value.
2019-11-14Initial proxy support.Igor Sysoev1-28/+759
2019-11-14Introduced chained buffer completion handlers.Igor Sysoev1-0/+1
2019-11-14Using event engine memory buffers in HTTP/1 layer.Igor Sysoev1-11/+14
2019-11-14Using request task.Igor Sysoev1-0/+10
2019-10-10Style fixes.Igor Sysoev1-2/+4
2019-10-10Changed nxt_memcasecmp() interface to avoid casts.Igor Sysoev1-6/+4
2019-09-30HTTP: corrected allocation size for tail chunk.Valentin Bartenev1-1/+1
2019-09-02Making request state handler calls more consistent.Max Romanov1-4/+2
2019-08-26Adding body handler to nxt_http_request_header_send().Igor Sysoev1-2/+17
2019-08-20Introducing websocket support in router and libunit.Max Romanov1-78/+292
2019-08-16Changing the sequence of body send execution.Max Romanov1-7/+1
Request state ready_handler required for further websocket events processing. It is not required for regular response transferring.
2019-08-06nxt_h1proto_t definition was moved to h1proto implementation.Igor Sysoev1-0/+20
2019-08-06Refactored HTTP protocol callback table.Igor Sysoev1-46/+14
2019-07-24Added routing based on request scheme.Axel Duch1-17/+4
Scheme matches exact string “http” or “https”.
2019-03-21Adjusting request schema value according to connection tls state.Max Romanov1-0/+17
This closes #223 issue on GitHub.
2019-02-28Fixed timer and event race condition.Igor Sysoev1-0/+4
When idle timeout occurs at the same time as a request comes in, the timer handler closes connection while the read event triggers request processing, and this eventually leads to segmentation fault.
2019-02-26Keepalive mode is disabled on HTTP header parsing errors.Igor Sysoev1-0/+2
2019-02-19Validation and normalization of request host.Valentin Bartenev1-3/+1
2018-10-01Disabled chunked transfer encoding for 304 responses as well.Valentin Bartenev1-1/+1
According to RFC 7232: | A 304 response cannot contain a message-body; it is always terminated | by the first empty line after the header fields.
2018-10-01Allowing keep-alive connections after 204 responses.Valentin Bartenev1-5/+7
This was unintentionally disabled by 7b5026a0bdeb.
2018-09-28Disabled chunked transfer encoding for 204 responses.Igor Sysoev1-1/+2
2018-09-20Added nginx error 497 response.Igor Sysoev1-0/+20
2018-09-20Added SSL/TLS support on connection level.Igor Sysoev1-193/+401
2018-07-30Fixed segfault on listening socket close.Igor Sysoev1-13/+54
Now keep-alive connection sends 408 response if listening socket was closed while reconfiguration.
2018-07-30Sending 408 response on idle connection timeout.Igor Sysoev1-14/+112
2018-07-12Disabling keep-alive connection on errors.Igor Sysoev1-10/+17
2018-07-12Fixed bug in "send_timeout" handling.Igor Sysoev1-1/+1
2018-06-25Introduced nxt_length() macro.Valentin Bartenev1-8/+8
2018-05-30Fixed keep-alive hanging after reconfiguration.Igor Sysoev1-32/+86
2018-04-12Miscellaneous changes.Igor Sysoev1-9/+14
2018-04-12Disabling timer when request header has been entirely read.Igor Sysoev1-2/+8
2018-04-12Fixed idle timeout, broken in b3e55c647741.Igor Sysoev1-1/+1
2018-04-11Initial access log support.Valentin Bartenev1-0/+31
2018-04-11Introducing connection state io_read_handler.Igor Sysoev1-32/+26
2018-04-11Keepalive processing optimization.Igor Sysoev1-46/+9