aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Version bump.Maxim Dounin2014-04-18
|
* SPDY: fixed typo in log message.Valentin Bartenev2014-04-16
|
* Fixed missing "static" in declaration of ngx_http_gzip_quantity().Valentin Bartenev2014-04-16
|
* SPDY: moved a variable initialization near to its check.Valentin Bartenev2014-04-09
| | | | | | | This should prevent attempts of using pointer before it was checked, since all modern compilers are able to spot access to uninitialized variable. No functional changes.
* SPDY: fixed arguments supplied for an error message.Valentin Bartenev2014-04-08
|
* Version bump.Valentin Bartenev2014-04-08
|
* SPDY: avoid creating flush frames.Valentin Bartenev2014-04-07
| | | | | | | | | Previously, an empty frame object was created for an output chain that contains only sync or flush empty buffers. But since 39d7eef2e332 every DATA frame has the flush flag set on its last buffer, so there's no need any more in additional flush buffers in the output queue and they can be skipped. Note that such flush frames caused an incorrect $body_bytes_sent value.
* SPDY: consistently handle control frames with unknown type.Valentin Bartenev2014-04-07
| | | | | | | | | | | | | The SPDY draft 2 specification requires that if an endpoint receives a control frame for a type it does not recognize, it must ignore the frame. But the 3 and 3.1 drafts don't seem to declare any behavior for such case. Then sticking with the previous draft in this matter looks to be right. But previously, only 8 least significant bits of the type field were parsed while the rest of 16 bits of the field were checked against zero. Though there are no known frame types bigger than 255, this resulted in inconsistency in handling of such frames: they were not recognized as valid frames at all, and the connection was closed.
* SPDY: refactored ngx_http_spdy_state_read_data().Valentin Bartenev2014-04-07
| | | | | There's no more need in a separate indicator of frame completeness after d74889fbf06d.
* SPDY: better detect premature closing of stream.Valentin Bartenev2014-04-07
| | | | | Following a24f88eff684, now the case when the FIN flag is set in SYN_STREAM is also covered.
* Win32: fixed shared ssl_session_cache (ticket #528).Maxim Dounin2014-04-07
| | | | | In a worker process shm_zone->data was set to NULL instead of a proper value extracted from shared memory.
* Mp4: allow end values bigger than track duration.Roman Arutyunyan2014-04-01
| | | | | | If start time is within the track but end time is out of it, error "end time is out mp4 stts samples" is generated. However it's better to ignore the error and output the track until its end.
* Adjusted default value of types_hash_bucket_size (ticket #352).Maxim Dounin2014-03-31
| | | | | | | | The ngx_cacheline_size may be too low on some platforms, resulting in unexpected hash build problems (as no collisions are tolerated due to low bucket_size, and max_size isn't big enough to build a hash without collisions). These problems aren't fatal anymore but nevertheless need to be addressed.
* Core: fixed hash to actually try max_size.Maxim Dounin2014-03-31
| | | | Previously, maximum size of a hash table built was (max_size - 1).
* Core: hash now ignores bucket_size if it hits max_size limit.Maxim Dounin2014-03-31
|
* Core: slab log_nomem flag.Maxim Dounin2014-03-31
| | | | | | | | | The flag allows to suppress "ngx_slab_alloc() failed: no memory" messages from a slab allocator, e.g., if an LRU expiration is used by a consumer and allocation failures aren't fatal. The flag is now used in the SSL session cache code, and in the limit_req module.
* Win32: fixed cpu hog by cache manager on exit (ticket #514).Maxim Dounin2014-03-31
| | | | | | The "ngx_quit" may be reset by the worker thread before it's seen by a ngx_cache_manager_thread(), resulting in an infinite loop. Make sure to test ngx_exiting as well.
* Mail: fixed ngx_mail_send() (ticket #519).Maxim Dounin2014-03-31
|
* Added #ifndef around NGX_HAVE_CASELESS_FILESYSTEM define.Maxim Dounin2014-03-31
| | | | | | This brings Cygwin compilation in line with other case-insensitive systems (notably win32 and OS X) where one can force case sensitivity using -DNGX_HAVE_CASELESS_FILESYSTEM=0.
* Mp4: improved logging after adding "end" support.Roman Arutyunyan2014-03-31
| | | | | | | | | | | Despite introducing start and end crop operations existing log messages still mostly refer only to start. Logging is improved to match both cases. New debug logging is added to track entry count in atoms after cropping. Two format type mismatches are fixed as well.
* Mp4: fixed seeking to a track end.Roman Arutyunyan2014-03-31
| | | | | | | When "start" value is equal to a track duration the request fails with "time is out mp4 stts" like it did before track duration check was added. Now such tracks are considered short and skipped.
* SPDY: detect premature closing of stream.Valentin Bartenev2014-03-28
| | | | | | | | | | The SPDY/3.1 specification requires that the server must respond with a 400 "Bad request" error if the sum of the data frame payload lengths does not equal the size of the Content-Length header. This also fixes "zero size buf in output" alert, that might be triggered if client sends a greater than zero Content-Length header and closes stream using the FIN flag with an empty request body.
* SPDY: fixed the DATA frame length handling in case of some errors.Valentin Bartenev2014-03-28
| | | | | | | | | There are a few cases in ngx_http_spdy_state_read_data() related to error handling when ngx_http_spdy_state_skip() might be called with an inconsistent state between *pos and sc->length, that leads to violation of frame layout parsing and resuted in corruption of spdy connection. Based on a patch by Xiaochen Wang.
* SPDY: better detect if headers block has wrong entries count.Valentin Bartenev2014-03-26
| | | | | | | Previously, only one case was checked: if there's more data to parse in a r->header_in buffer, but the buffer can be filled to the end by the last parsed entry, so we also need to check that there's no more data to inflate.
* SPDY: detect premature end of frame while start parsing headers.Valentin Bartenev2014-03-26
|
* Apply underscores_in_headers also to the first character.Piotr Sikora2014-03-24
| | | | Signed-off-by: Piotr Sikora <piotr@cloudflare.com>
* Increased default value of variables_hash_max_size.Andrei Belov2014-03-25
|
* Mp4: skipped empty stss atom table in output.Sergey Kandaurov2014-03-24
| | | | | | The atom may have no data entries after cropping. This fixes "zero size buf in output" alerts.
* Range filter: single_range flag in request.Maxim Dounin2014-03-21
| | | | | | | | | | | | If set, it means that response body is going to be in more than one buffer, hence only range requests with a single range should be honored. The flag is now used by mp4 and cacheable upstream responses, thus allowing range requests of mp4 files with start/end, as well as range processing on a first request to a not-yet-cached files with proxy_cache. Notably this makes it possible to play mp4 files (with proxy_cache, or with mp4 module) on iOS devices, as byte-range support is required by Apple.
* Mp4: added "end" argument support.Roman Arutyunyan2014-03-20
|
* Mp4: moved atom cropping code out of update functions.Roman Arutyunyan2014-03-20
| | | | It can now be reused for implementing mp4 end.
* SPDY: improved ngx_http_spdy_state_save() again.Maxim Dounin2014-03-19
|
* Macros used for initialization in ngx_http_core_init_main_conf().Maxim Dounin2014-03-19
|
* SPDY: improved ngx_http_spdy_state_save() check.Maxim Dounin2014-03-19
|
* SPDY: macro used for recv_buffer_size initialization.Maxim Dounin2014-03-19
|
* Version bump.Maxim Dounin2014-03-18
|
* SPDY: always check size of data to be saved into state buffer.Maxim Dounin2014-03-18
|
* Added server-side support for PROXY protocol v1 (ticket #355).Roman Arutyunyan2014-03-17
| | | | | | | | Client address specified in the PROXY protocol header is now saved in the $proxy_protocol_addr variable and can be used in the realip module. This is currently not implemented for mail.
* FastCGI: f->split_parts reset on request start.Maxim Dounin2014-03-17
| | | | | | | | Additionally, make sure to check for errors from ngx_http_parse_header_line() call after joining saved parts. There shouldn't be any errors, though check may help to catch bugs like missing f->split_parts reset. Reported by Lucas Molas.
* Core: fixed wrong indices in listening sockets compare loops.Maxim Dounin2014-03-07
| | | | | Proper use is "ls[i]" and "nls[n]". Previous code used it wrong in several places, likely due to cut-n-paste errors.
* Added connection serial number in logging of left open sockets.Sergey Kandaurov2014-03-06
|
* Fixed format specifier in logging of "c->number".Sergey Kandaurov2014-03-06
|
* Version bump.Roman Arutyunyan2014-03-04
|
* SPDY: fixed potential integer overflow while parsing headers.Valentin Bartenev2014-03-03
| | | | | | | | | | | | | | | | Previously r->header_size was used to store length for a part of value that represents an individual already parsed HTTP header, while r->header_end pointed to the end of the whole value. Instead of storing length of a following name or value as pointer to a potential end address (r->header_name_end and r->header_end) that might be overflowed, now r->lowercase_index counter is used to store remaining length of a following unparsed field. It also fixes incorrect $body_bytes_sent value if a request is closed while parsing of the request header. Since r->header_size is intended for counting header size, thus abusing it for header parsing purpose was certainly a bad idea.
* SPDY: constant number of preallocated structures for headers.Valentin Bartenev2014-03-03
|
* Request body: avoid potential overflow.Maxim Dounin2014-03-03
|
* Gzip static: fixed NGX_CONF_FLAG misuse.Valentin Bartenev2014-03-03
|
* Disabled redirects to named locations if URI is not set.Maxim Dounin2014-02-27
| | | | | | | | | | | If something like "error_page 400 @name" is used in a configuration, a request could be passed to a named location without URI set, and this in turn might result in segmentation faults or other bad effects as most of the code assumes URI is set. With this change nginx will catch such configuration problems in ngx_http_named_location() and will stop request processing if URI is not set, returning 500.
* Core: allocate enough memory to hold IPv6 text address plus port.Ruslan Ermilov2014-02-22
|
* Resolver: properly handle connect() failures.Ruslan Ermilov2014-02-20
| | | | | If initial attempt to connect() the UDP socket failed, e.g. due to network unreachable, no further attempts were made.