Age | Commit message (Collapse) | Author |
|
Table only needs to be resized if the current size exceeds the new
max size, regardless of current max size.
|
|
Correction to cow_hpack:encode/2,3 according to RFC 7541, 4.3. Entry
Eviction When Dynamic Table Size Changes.
This change also corrects the handling of inserting entries larger than
the max size, which shall result in an empty table, according to 4.4.
in the same RFC.
Fixes #101, #103.
|
|
When EOS is found within the string the decoding must fail.
When the final padding is > 7 bit in length the decoding must
fail as well.
|
|
There's no shift to be done for the first value.
|
|
|
|
|
|
|
|
This in turn leads to a small performance improvement.
|
|
|
|
|
|
|
|
|
|
This provides a small but noticeable improvement so it's
probably worth doing.
|
|
|
|
The previous naive implementation ended up not benefitting
from binary match context reuse because it was matching on
bit boundaries (and not bytes). This new implementation
matches a byte at a time.
The result is almost twice faster when decoding the examples
from the HPACK RFC (before/after):
cow_hpack:decode_huffman in 0.250666s
cow_hpack:decode_huffman in 0.133743s
|
|
|
|
|
|
|
|
The new entry size wasn't being added to the table size
after a prune.
Also fixes incorrect test cases. The size number was
different than the one found in RFC 7541 Appendix C.
|
|
|
|
See also https://github.com/erlang/otp/pull/883
|
|
|
|
No decoding options have been added in this commit. They will be
added in the future.
Only one encoding option has been added: #{huffman => boolean()}.
It allows to disable Huffman compression of strings. This compression
is enabled by default.
|