diff options
author | Loïc Hoguin <[email protected]> | 2017-05-23 14:40:16 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2017-05-23 14:40:16 +0200 |
commit | 20f1ec02b0b1b4727b2c6e96a3b04e4785ff3228 (patch) | |
tree | 28e803a5b5809901e77a84380ec9a3bf6a4aea1a | |
parent | 0d5b36e1ba765c4aef84449e76c8ab8061074f96 (diff) | |
download | cowlib-20f1ec02b0b1b4727b2c6e96a3b04e4785ff3228.tar.gz cowlib-20f1ec02b0b1b4727b2c6e96a3b04e4785ff3228.tar.bz2 cowlib-20f1ec02b0b1b4727b2c6e96a3b04e4785ff3228.zip |
Add building of PRIORITY frame
-rw-r--r-- | src/cow_http2.erl | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/cow_http2.erl b/src/cow_http2.erl index efc3ad8..ef7d439 100644 --- a/src/cow_http2.erl +++ b/src/cow_http2.erl @@ -23,6 +23,7 @@ -export([data/3]). -export([data_header/3]). -export([headers/3]). +-export([priority/4]). -export([rst_stream/2]). -export([settings/1]). -export([settings_payload/1]). @@ -359,6 +360,10 @@ headers(StreamID, IsFin, HeaderBlock) -> FlagEndHeaders = 1, [<< Len:24, 1:8, 0:5, FlagEndHeaders:1, 0:1, FlagEndStream:1, 0:1, StreamID:31 >>, HeaderBlock]. +priority(StreamID, E, DepStreamID, Weight) -> + FlagExclusive = exclusive(E), + << 5:24, 2:8, 0:9, StreamID:31, FlagExclusive:1, DepStreamID:31, Weight:8 >>. + rst_stream(StreamID, Reason) -> ErrorCode = error_code(Reason), << 4:24, 3:8, 0:9, StreamID:31, ErrorCode:32 >>. @@ -400,6 +405,9 @@ window_update(StreamID, Increment) when Increment =< 16#7fffffff -> flag_fin(nofin) -> 0; flag_fin(fin) -> 1. +exclusive(shared) -> 0; +exclusive(exclusive) -> 1. + error_code(no_error) -> 0; error_code(protocol_error) -> 1; error_code(internal_error) -> 2; |