HTTP/2 C library and tools

Nghttp2 v0.7.3

We released nghttp2 v0.7.3. v0.7.2 was replaced with v0.7.3 shortly after its release because it contains apparent bugs. The v0.7.3 release still uses h2-14 identifier in library code.

Since v0.7.3 is quick bug fix release, we summarize changes made in both v0.7.3 and v0.7.2. We added nghttp2_submit_shutdown_notice() API function. It is intended to be used by server and tells client that server has started graceful shutdown by sending GOAWAY with (1 << 31) - 1 as last-stream-ID. We also added nghttp2_session_get_last_proc_stream_id(), which returns the largest stream ID the library called nghttp2_on_frame_recv_callback() for and can be passed as last-stream-id paramter to nghttp2_submit_goaway() if application has no more specific knowledge about last-stream-ID.

nghttpx has several options added. They are mostly optimzation purpose. We tightened up HTTP header field validation in nghttpx, particularly for Content-Length header field.

To upgrade ease of use, options which take SIZE as metavar can use units (K, M and G, powers of 1024) along with leading digits. For example, now we can specify --read-rate=4K, which is identical to --read-rate=4096.

Since nghttpx has many features, we started to add integration testing framework using Go programming language and its go test feature. It resides in integration-tests directory.