spdylay 0.2.0 ============= Release Note ------------ This release adds several new APIs. The spdylay_gzip API is suitable for inflating compressed entity body from the remote endpoint. The spdylay_submit_window_update() is added to send WINDOW_UPDATE frame by the application. The spdylay_session_set_option() is a new function to set options to the library. Currently, SPDYLAY_OPT_NO_AUTO_WINDOW_UPDATE option is available. If it is set, the library does not send WINDOW_UPDATE automatically. The application should send WINDOW_UPDATE using spdylay_submit_window_update(). The spdylay_strerror() is added and it returns string describing the given error code. The following new callback functions are added: spdylay_on_unknown_ctrl_recv_callback and spdylay_on_ctrl_recv_parse_error_callbacks. They are useful for debugging and logging errors. Some changes are made to exsiting interfaces. The status_code argument was added to spdylay_on_invalid_ctrl_recv_callback. FRAME_TOO_LARGE was renamed as SPDYLAY_FRAME_TOO_LARGE. spdylay_data_source_read_callback can now return SPDYLAY_ERR_TEMPORAL_CALLBACK_FAILURE to signal stream error. Previously, this function can only return SPDYLAY_ERR_CALLBACK_FAILURE on error, which signals session error. Since SPDY/3 is now becoming mainline protocol, spdylay_select_next_protocol() now prefers spdy/3 to spdy/2. Some bug fixes are made in flow control and handling max concurrent streams. For example programs, the usage output was cleaned up. The -w option is added to spdycat. This option sets the initial window size bits. spdycat and spdyd prefer spdy/3 to spdy/2 from this release. The pkg-config file now includes zlib in Requires.private. Changes ------- * Renamed index in spdylay_get_credential_cert prototype to idx This is because compiler may warn that name `index` shadows global declaration if the application code uses the prototype argument names as is. * Bumped up the library version to 1.0.0 because of the API changes. * Prefer spdy/3 to spdy/2 in spdyd * Prefer spdy/3 to spdy/2 in spdylay_select_next_protocol() * spdylay_data_source_read_callback can now return SPDYLAY_ERR_TEMPORAL_CALLBACK_FAILURE to signal stream error. The existing SPDYLAY_ERR_CALLBACK_FAILURE signals session error. * Renamed error as error_code in spdylay_on_ctrl_not_send_callback prototype * Bring back deferred DATA to the outbound queue when SETTINGS with INITIAL_WINDOW_SIZE is received and the window size becomes positive. * Fixed the bug that spdylay_recv does not return SPDYLAY_ERR_EOF. * Renamed FRAME_TOO_LARGE as SPDYLAY_FRAME_TOO_LARGE * Added status_code argument to spdylay_on_invalid_ctrl_recv_callback * Added spdylay_strerror() public API. It returns string describing the given error code. * Added spdylay_on_unknown_ctrl_recv_callback. This callback function is invoked when the unknown frame type is received. Added debug output using this callback to spdycat. * Added spdylay_on_ctrl_recv_parse_error_callback. This callback function is invoked when the received frame data could not be parsed correctly. Added debug output using this callback to spdycat. * Added spdylay_submit_window_update() public API. * Added spdylay_session_set_option() public API. Currently, SPDYLAY_OPT_NO_AUTO_WINDOW_UPDATE option is available. If it is set, the library does not send WINDOW_UPDATE automatically. The application should send WINDOW_UPDATE using spdylay_submit_window_update(). * Added -w, --window-bits option to spdycat. This option sets the initial window size bits. * Having the number of server and client streams be limited separately using SETTINGS_MAX_CONCURRENT_STREAMS * Use local_settings' INITIAL_WINDOW_SIZE when deciding to send WINDOW_UPDATE. * Added spdylay_gzip API. They are suitable for inflating compressed entity body from the remote endpoint. * Added SPDY client example written in C. * Added zlib to Requires.private and updated Description