<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nginx.git/src/http, branch release-1.5.13</title>
<subtitle>nginx</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/'/>
<entry>
<title>SPDY: avoid creating flush frames.</title>
<updated>2014-04-07T19:35:33+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2014-04-07T19:35:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=5cf11ab2e0e27a4289ac7a69174c90fc7306f805'/>
<id>5cf11ab2e0e27a4289ac7a69174c90fc7306f805</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>SPDY: consistently handle control frames with unknown type.</title>
<updated>2014-04-07T15:27:56+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2014-04-07T15:27:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=a547f4ac15a489be896edb353a71f2dc85af1265'/>
<id>a547f4ac15a489be896edb353a71f2dc85af1265</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>SPDY: refactored ngx_http_spdy_state_read_data().</title>
<updated>2014-04-07T15:27:56+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2014-04-07T15:27:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=108e4d94e4585085f3244f50905d772d089bcb70'/>
<id>108e4d94e4585085f3244f50905d772d089bcb70</id>
<content type='text'>
There's no more need in a separate indicator of frame completeness
after d74889fbf06d.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There's no more need in a separate indicator of frame completeness
after d74889fbf06d.
</pre>
</div>
</content>
</entry>
<entry>
<title>SPDY: better detect premature closing of stream.</title>
<updated>2014-04-07T15:27:56+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2014-04-07T15:27:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=b2cd52067348aad0f751e654ed7f42f0a29b418d'/>
<id>b2cd52067348aad0f751e654ed7f42f0a29b418d</id>
<content type='text'>
Following a24f88eff684, now the case when the FIN flag is set in SYN_STREAM
is also covered.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Following a24f88eff684, now the case when the FIN flag is set in SYN_STREAM
is also covered.
</pre>
</div>
</content>
</entry>
<entry>
<title>Mp4: allow end values bigger than track duration.</title>
<updated>2014-04-01T16:53:18+00:00</updated>
<author>
<name>Roman Arutyunyan</name>
<email>arut@nginx.com</email>
</author>
<published>2014-04-01T16:53:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=5147f8ee6a5fb6a7cb615e0897e736a80daef9e8'/>
<id>5147f8ee6a5fb6a7cb615e0897e736a80daef9e8</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Adjusted default value of types_hash_bucket_size (ticket #352).</title>
<updated>2014-03-31T18:47:42+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2014-03-31T18:47:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=2349a6747d48a48cebcc5227f82083c33a799517'/>
<id>2349a6747d48a48cebcc5227f82083c33a799517</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Core: slab log_nomem flag.</title>
<updated>2014-03-31T17:38:30+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2014-03-31T17:38:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=23f66898463308fdc70ab2659273fb9804f29370'/>
<id>23f66898463308fdc70ab2659273fb9804f29370</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Mp4: improved logging after adding "end" support.</title>
<updated>2014-03-31T16:05:53+00:00</updated>
<author>
<name>Roman Arutyunyan</name>
<email>arut@nginx.com</email>
</author>
<published>2014-03-31T16:05:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=6f1763213b7a98b69dc871b0a00e336e6d243477'/>
<id>6f1763213b7a98b69dc871b0a00e336e6d243477</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Mp4: fixed seeking to a track end.</title>
<updated>2014-03-31T15:52:17+00:00</updated>
<author>
<name>Roman Arutyunyan</name>
<email>arut@nginx.com</email>
</author>
<published>2014-03-31T15:52:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=70e98eac3e33d5690e1b0c0404c3133f63e8bcba'/>
<id>70e98eac3e33d5690e1b0c0404c3133f63e8bcba</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>SPDY: detect premature closing of stream.</title>
<updated>2014-03-28T16:22:57+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2014-03-28T16:22:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=ac5a3cbeee718850a8eba8b601d8827d649de201'/>
<id>ac5a3cbeee718850a8eba8b601d8827d649de201</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
</feed>
