Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-12-26 | Use binary append instead of lists:reverse | Loïc Hoguin | |
2019-12-26 | Remove unused cow_hpack:decode/3 Opts argument | Loïc Hoguin | |
2019-12-26 | HPACK encode: conditionally call an iolist_to_binary | Loïc Hoguin | |
This provides a small but noticeable improvement so it's probably worth doing. | |||
2019-12-25 | Fix typo in comment | Loïc Hoguin | |
2019-12-25 | Optimize HPACK Huffman decoding | Loï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-19 | Accept iodata() when building links | Loïc Hoguin | |
2019-12-19 | Escape attribute values when building link headers | Loïc Hoguin | |
2019-12-18 | Rename cow_uri_templates to cow_uri_template | Loïc Hoguin | |
Fits better since we are dealing with a single template at a time. | |||
2019-12-18 | Add cow_uri_templates | Loïc Hoguin | |
Implements RFC6570 level 4. | |||
2019-11-25 | Reorganize cow_http_hd | Loïc Hoguin | |
2019-11-25 | Add structured headers, variants and variant-key building | Loïc Hoguin | |
2019-11-23 | Add cow_http_struct_hd | Loïc Hoguin | |
Implements draft-ietf-httpbis-header-structure-14. | |||
2019-11-23 | Add cow_link implementing RFC8288 (link header) | Loïc Hoguin | |
2019-10-10 | Add cow_http2_machine:is_lingering_stream/22.8.0 | Loïc Hoguin | |
2019-10-10 | Fix cow_http_te:decode_ret() type | Loïc Hoguin | |
2019-10-10 | Fix cookie_opts() type in code and documentation | Loïc Hoguin | |
It's supposed to be a map, not a proplist. | |||
2019-10-05 | Allow disabling the UTF-8 Websocket text frames validation | Loïc Hoguin | |
2019-10-05 | Make sure ensure_window doesn't crash if stream is closed | Loïc Hoguin | |
2019-10-04 | Add manual for cow_cookie | Loïc Hoguin | |
2019-10-03 | Remove HTTP/1.1 connection headers in HTTP/2 messages | Loïc Hoguin | |
2019-10-01 | Don't return lingering_data tuples anymore | Loïc Hoguin | |
The better solution is to use the ensure_window functions, if updating the window is necessary. | |||
2019-10-01 | Add HTTP/2 option stream_window_data_threshold | Loïc Hoguin | |
This controls how large the window should be before we are willing to send data. We of course always send data when the data we need to send is lower than the current window. This is both an optimization and a fix for the data dribble denial of service vulnerability (CVE-2019-9511). | |||
2019-10-01 | Add cow_http2_machine:get_connection_local_buffer_size/1 | Loïc Hoguin | |
The function can be used to restrict how big all the buffers of a single connection can get. | |||
2019-10-01 | Don't filter HTTP/2 options | Loïc Hoguin | |
It's not a big gain and causes issues when forgetting to update the list. Maybe it can be added back again at a later time. | |||
2019-10-01 | Reject empty HTTP/2 header names | Loïc Hoguin | |
2019-09-14 | Add cow_http2_machine:get_stream_local_buffer_size/2 | Loïc Hoguin | |
2019-09-12 | Fix a bug where final empty frames were ignored | Loïc Hoguin | |
When a final empty frame was queued and the data sent made the window go to 0 and the remote end didn't increase the window anymore, the final empty frame could get stuck in the queue and never sent. Also ensure that we never queue empty non-final data. | |||
2019-09-06 | Add missing specs to cow_http2_machine:ensure_window | Loïc Hoguin | |
2019-09-06 | Authentication scheme is case insensitive | Bip Thelin | |
2019-09-06 | Add status codes 208 and 508 | Loïc Hoguin | |
2019-09-02 | Add cow_http2_machine:ensure_window/2,3 | Loïc Hoguin | |
These functions apply heuristics to reduce the number of times we send WINDOW_UPDATE frames. | |||
2019-07-27 | Add missing lingering_data in the spec | Loïc Hoguin | |
2019-07-26 | Don't return lingering_data when the length is 0 | Loïc Hoguin | |
2019-04-28 | Return lingering_data when received data in lingering | Tony Han | |
2019-04-03 | Don't use string:lowercase yet, not available in OTP-192.7.2 | Loïc Hoguin | |
2019-03-26 | :authority is not required by spec2.7.1 | Fredrik Enestad | |
2019-03-25 | Lowercase file extension in cow_mimetypes | David.Gao | |
2019-03-25 | Make sure iolist split uses N length | José Valim | |
The previous implementation would return "ok" under certain situations when more data could be fit into the buffer. By making "ok" explicitly mean length is 0, then we can simplify other parts of the codebase and fix a bug that could cause us to send less data then desired over the wire. | |||
2018-11-13 | Support uncompressed Websocket frames when deflate is enabled | Loïc Hoguin | |
2018-11-12 | Add deflate options for Websocket compression | Loïc Hoguin | |
They allow the server to configure what it is willing to accept for the negotiated configuration (takeover and window bits). | |||
2018-11-03 | Make cow_http_hd:parse_accept/1 lowercase charsets | Loïc Hoguin | |
Charsets are case insensitive. This is now in line with parse_accept_charset/1 and parse_content_type/1. | |||
2018-10-30 | Fixes various client issues in cow_http2_machine | Loïc Hoguin | |
2018-10-27 | Handle HTTP/2 timeouts in the state machine | Loïc Hoguin | |
2018-10-26 | Add cow_http2:parse_sequence/1 | Loïc Hoguin | |
2018-10-26 | Introduce cow_http2_machine, an HTTP/2 state machine | Loïc Hoguin | |
This is the result of a merge of the Cowboy and Gun HTTP/2 codes. It can probably do a little more but it's at a point where Cowboy works fine when using it so additional work will be done in other commits. The Gun code has not been switched to this module yet. I expect for example the PUSH_PROMISE code to fail at this point. This will be the next step. | |||
2018-09-28 | Add support for SameSite cookies | ECrownofFire | |
The SameSite cookie attribute has yet to appear in an official RFC, and until recently was exclusive to Chrome. However, Firefox has recently implemented it as well, so it seems prudent to support it. | |||
2018-09-17 | Add cow_http:parse_request_line/1 | Loïc Hoguin | |
2018-08-06 | Export two cow_http types used by Gun | Loïc Hoguin | |
2018-08-06 | Fix typespecs causing Dialyzer errors in user projects | Loïc Hoguin | |
2018-08-03 | Refactor some code to fix a Dialyzer warning | Loïc Hoguin | |