aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2022-09-02Do additional cookie parsing checks based on RFC6265bisLoïc Hoguin
2022-03-22Implement RFC5861 (stale-* cache-control directives)Tangui Le Pense
Loïc: amended to add RFC5861 examples to the tests.
2022-03-22Update Basic auth parsing to RFC 7617Sebastian Strollo
In particular we now ignore unknown authentication parameters. Loïc: Small cleanup edits in amend.
2022-03-22Fix URI template reserved expansion of %-encodedLoïc Hoguin
2022-03-22Update structured headers implementation to RFC 8941Loïc Hoguin
I have in the process changed the output a little with regard to parameters. The dictionaries also build as a list of key-values now to keep ordering. This should be the definitive interface.
2021-05-12Update link in Hex metadataLoïc Hoguin
2021-04-24Cowlib 2.11.02.11.0Loïc Hoguin
2021-03-29Update base32 master->mainLoïc Hoguin
2020-11-27Handle last remote stream ID in cow_http2_machineViktor Söderqvist
New function set_last_streamid/1 sets the last accepted stream ID to the last known remote stream ID. Frames with a remote stream ID greater than this are thereafter discarded by frame/2, which returns {ok, Http2Machine} for such frames.
2020-11-19Add Sponsor link to Hex metadata2.10.1Loïc Hoguin
2020-11-17Cowlib 2.10.1Loïc Hoguin
2020-11-17Update Erlang.mkLoïc Hoguin
This Erlang.mk includes the experimental Hex.pm support for publishing releases and other related things.
2020-11-12Fix set-cookie empty domain attribute parsingLoïc Hoguin
We must not remove all domain attributes when we find an empty domain attribute, we must only ignore this one particular cookie-av. (RFC6265bis 5.3.3)
2020-10-23Add cow_http2_machine:get_remote_settings/12.10.0Jonas Boberg
LH: I've updated the code to include enable_connect_protocol conditionally depending on the endpoint.
2020-10-20Document the same_site changesLoïc Hoguin
And explain that browsers may be more strict over TCP vs TLS.
2020-10-07Add a message_tag to timeout messages sent by cow_http2_machineLoïc Hoguin
They are currently optional to avoid doing a breaking change but should become mandatory (perhaps with a default value of undefined) in Cowlib 3.0.
2020-10-07Update Erlang.mkLoïc Hoguin
2020-10-07Minor optimization in cow_hpack:update_table_size/2Viktor Söderqvist
Table only needs to be resized if the current size exceeds the new max size, regardless of current max size.
2020-10-07Make HPACK encode respect new configured max sizeViktor Söderqvist
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.
2020-10-07Cookies: accept setting same_site to noneNiklas
Chromium and Firefox have both begun using "Lax" as the default for non-Secure cookies.
2020-04-13Update Erlang.mkLoïc Hoguin
2020-04-01Cowlib 2.9.12.9.1Loïc Hoguin
2020-03-30Add aliases for cookie parsing in cow_http_hdLoïc Hoguin
2020-03-30Fix some HPACK Huffman decoding failure casesLoïc Hoguin
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.
2020-03-25Cowlib 2.9.02.9.0Loïc Hoguin
2020-03-19Document the new cow_cookie functionsLoïc Hoguin
2020-03-11Add cow_cookie:cookie/1Loïc Hoguin
2020-03-06Add cow_cookie:parse_set_cookie/1Loïc Hoguin
Also do minor fixes to cow_cookie:parse_cookie/1. There is a potential incompatibility from these changes, because now a header "Cookie: foo" will be translated to a cookie with an empty name and value "foo", instead of cookie name "foo" and empty value. Also cookie names starting with $ are no longer ignored. These fixes are necessary for the cookies test suite from Web platform tests to work, and match the upcoming cookie RFC.
2020-02-27Clarify error when expecting a SETTINGS frame in HTTP/2 prefaceLoïc Hoguin
The error was appropriate for server mode, but not for client mode, because the server does not send the preface sequence.
2020-01-06Use a map for streams in cow_http2_machineLoïc Hoguin
2019-12-31Add sponsor link to the READMELoïc Hoguin
2019-12-31Fix sending trailers when there are data frames in queueTony Han
2019-12-29HPACK: Fix inline integer decodingsLoïc Hoguin
There's no shift to be done for the first value.
2019-12-28Freeze the structured header tests to a particular commitLoïc Hoguin
Since the spec is still evolving quite a bit and we are following draft numbers (and not the editor's draft) we should use the test suite from that draft.
2019-12-27HPACK: Turn off Dialyzer warning about improper listsLoïc Hoguin
2019-12-27HPACK decode: decode integers directly to avoid copying binariesLoïc Hoguin
2019-12-27HPACK decode: don't try to drop entries when increasing sizeLoïc Hoguin
2019-12-27HPACK encoding now produces a more compact resultLoïc Hoguin
This in turn leads to a small performance improvement.
2019-12-26Fix Proper tests following cow_hpack changesLoïc Hoguin
2019-12-26HPACK encode shouldn't maps:get(huffman...) for every stringLoïc Hoguin
2019-12-26Use binary append instead of lists:reverseLoïc Hoguin
2019-12-26Remove unused cow_hpack:decode/3 Opts argumentLoïc Hoguin
2019-12-26HPACK encode: conditionally call an iolist_to_binaryLoïc Hoguin
This provides a small but noticeable improvement so it's probably worth doing.
2019-12-25Fix typo in commentLoïc Hoguin
2019-12-25Optimize HPACK Huffman decodingLoïc Hoguin
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
2019-12-19Accept iodata() when building linksLoïc Hoguin
2019-12-19Escape attribute values when building link headersLoïc Hoguin
2019-12-18Rename cow_uri_templates to cow_uri_templateLoïc Hoguin
Fits better since we are dealing with a single template at a time.
2019-12-18Add cow_uri_templatesLoïc Hoguin
Implements RFC6570 level 4.
2019-11-25Reorganize cow_http_hdLoïc Hoguin