Revision history for Perl extension Protocol-HTTP2 1.11 2024-05-19T16:55:28Z - Fix minor typos and spelling errors (Yoshikazu Sawa) - Do not hardcode tlsv1 which is deprecated and disabled in some systems (Olivier Gayot) - Fix length-undef warnings in pre-5.12 perls (Felipe Gasper) 1.10 2019-11-12T06:19:05Z - test: fixed test 9 (issue 10) 1.09 2018-08-05T16:03:20Z - doc: fix spelling mistakes (Gregor Herrmann) - doc: added link to RFC 7541 (Mohammad S Anwar) - bugfix: protect against "disappearing" on_cancel() callback of server object (Felipe Gasper) - bugfix: prevent uninitialized warning (Junho Choi) 1.08 2016-09-27T12:57:26Z - implemented on_error callback for request - fixed bug: incorrect handling of negative window size (thanks to Daniil Bondarev for patch #2) - fixed bug: last chunk of blocked data can be sent several times - size of flow control window updated with current value of SETTINGS_INITIAL_WINDOW_SIZE 1.07 2016-03-03T20:44:19Z - implemented ping() method for client and server - implemented trailer headers support - fixed some error codes - improved header table size handling 1.06 2016-02-22T08:56:19Z - implemented keepalive option for client (#1) - explicit connection closing for client (#1) - fixed MAX_PAYLOAD_SIZE constant value (thanks to Francisco Obispo for bugreport) 1.05 2015-12-24T12:40:10Z - support for request body - new client/server examples with IO::Socket::SSL 1.04 2015-07-10T20:19:19Z - fixed bug: Chrome send ':path' as literal header, make exception for pseudo headers in header check - make exceptions for RST_STREAM frames in state_machine - fixed debugging level 1.03 2015-07-09T21:09:54Z - reworked enqueue() method, implemented enqueue_raw() - return error when CONTINUATION frames interrupted by other frames - check length of RST_STREAM and WINDOW_UPDATE frames - implemented validation rules for settings SETTINGS_ENABLE_PUSH and SETTINGS_INITIAL_WINDOW_SIZE - update flow control window size on active streams when receive SETTINGS_INITIAL_WINDOW_SIZE - fixed bug: now send ack on empty settings - fixed bug: flow control window for sended frames used to be initialized with wrong value - strict validation of headers - check for explicit content-length header to match size of received DATA frames - control for maximum concurrent streams - fixed tests 1.02 2015-06-22T17:27:01Z - fixed leaks test 1.01 2015-06-21T14:17:54Z - fixed leaks in Server/Client code - new test to check leaks - updated examples with tls 1.00 2015-05-16T18:51:09Z - HTTP/2 is RFC 7540 - HPACK is RFC 7541 - updated protocol id string ("h2", "h2c"), dropped old interop id strings 0.16 2015-04-05T20:41:49Z - update status (beta) - add wiki link - implemented server streaming - implemented client downloading, request cancelling 0.15 2015-02-26T20:39:20Z - Split settings for decoder/encoder - Allow to setup custom settings in Server/Client constructor - Fixed bug with settings packing/unpacking - Dropper Log::Dispatch dependency - updated HPACK to draft 12 0.14 2015-02-11T14:03:22Z - updated HTTP/2 to draft 17 - updated HPACK to draft 11 0.13 2014-12-01T07:56:43Z - updated HTTP/2 to draft 16 - added draft_interop version (14) for interoperability 0.12 2014-10-28T12:18:22Z - updated HTTP/2 to draft 15 0.11 2014-08-14T12:07:48Z - dropped Hash::MultiValue requirement - fixed HPACK - fixed HPACK test 0.10 2014-07-31T21:25:59Z - updated HTTP/2 to draft 14 - updated HPACK to draft 09 - fixed tests 0.09 2014-07-08T13:16:24Z - another fix for 09_client_server_tcp.t (check features of Net::SSLeay) - updated extract_* scripts - updated HTTP/2 to draft 13 - removed ALTSVC and BLOCKED frames - removed DATA frames compression support - PAD_HIGH, PAD_LOW flags are replaced by PADDED - settings changed from 8-bit to 16-bit unsigned integer - updated HPACK to draft 08 - updated huffman codes table - updated static table - fixed tests 0.08 2014-05-17T09:59:07Z - fixed test 09_client_server_tcp.t - fixed *_COMPRESS_DATA constants - fixed blocked data handling - allow zero-sized DATA frames - fixed HPACK encoding: evicting and reference set emptying - added Protocol::HTTP2::Server POD - fixed upgrade (added required header :scheme) 0.07 2014-05-15T13:14:32Z - implemented PRIOIRITY encoder/decoder - update HEADERS implementation (priority handling) - remove old flags PRIORITY_GROUP, PRIORITY_DEPENDENCY - added tcp test - update cpanfile (TCP::Test and other test deps) - implemented ALTSVC encoder/decoder - updated Protocol::HTTP2 POD - added Protocol::HTTP2::Client POD 0.06 2014-05-13T17:51:16Z - switch to Module::Build::Tiny - implemented PING encoder/decoder - fixed Rst_stream - unneeded state manipulation - internal PH2Test test module - implemented PUSH_PROMISE encoder - implemented push for Server - add Server's push in server-tls-anyevent.pl example - process state of encoded frame after putting it on a queue 0.05 2014-05-11T11:19:57Z - implemented flow control - implemented WINDOW_UPDATE encoder/decoder - fixed MAX_PAYLOAD_SIZE constant - fixed runtime error in RST_STREAM - required MIME::Base64 >= 3.11 (encode_base64url and decode_base64url) - HTTP/1.1 Upgrade for client 0.04 2014-05-08T18:22:24Z - enable Upgrade in server-anyevent.pl example - implemented HTTP/1.1 Upgrade (server) - fixed build/tests on windows - update cpanfile (Net::SSLeay > 1.45 for NPN) - update state doc 0.03 2014-05-07T18:05:50Z - client-tls-anyevent.pl with NPN/ALPN support and server's push handling - fixed error handling (send only one GOAWAY) - fixed PUSH_RPOMISE/CONTINUATION state and headers handling - implemented PUSH_PROMISE decoder - implemented RST_STREAM encoder - server-tls-anyevent.pl with NPN/ALPN support - fixed Connection's send(): set END_STREAM flag for last DATA frame - fixed HEADERS/CONTINUATION logic - pending state change until all CONTINUATION frames received - fixed author 0.02 2014-05-05T20:24:31Z - implemented CONTINUATION frame decoding - docs: table about frame types, flags and stream id 0.01 2014-04-27T08:51:15Z - original version