Compare commits

...

5 Commits

Author SHA1 Message Date
Tatsuhiro Tsujikawa ec542f140b Update manual pages 2017-04-09 21:29:58 +09:00
Tatsuhiro Tsujikawa 39a2a2437c Bump up version number to 1.21.1 2017-04-09 21:26:58 +09:00
Tatsuhiro Tsujikawa a073dfc633 nghttpx: Fix bug that 204 from h1 backend is always treated as error 2017-04-09 21:26:00 +09:00
Tatsuhiro Tsujikawa d2ba169f79 asio: Fix crash if connect takes longer time than ping interval 2017-04-09 21:26:00 +09:00
Tatsuhiro Tsujikawa a629a0c677 asio: Fix compile error 2017-04-09 21:26:00 +09:00
8 changed files with 11 additions and 11 deletions

View File

@ -24,7 +24,7 @@
cmake_minimum_required(VERSION 3.0) cmake_minimum_required(VERSION 3.0)
# XXX using 1.8.90 instead of 1.9.0-DEV # XXX using 1.8.90 instead of 1.9.0-DEV
project(nghttp2 VERSION 1.21.0) project(nghttp2 VERSION 1.21.1)
# See versioning rule: # See versioning rule:
# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html # http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html

View File

@ -25,7 +25,7 @@ dnl Do not change user variables!
dnl http://www.gnu.org/software/automake/manual/html_node/Flag-Variables-Ordering.html dnl http://www.gnu.org/software/automake/manual/html_node/Flag-Variables-Ordering.html
AC_PREREQ(2.61) AC_PREREQ(2.61)
AC_INIT([nghttp2], [1.21.0], [t-tujikawa@users.sourceforge.net]) AC_INIT([nghttp2], [1.21.1], [t-tujikawa@users.sourceforge.net])
AC_CONFIG_AUX_DIR([.]) AC_CONFIG_AUX_DIR([.])
AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_HEADERS([config.h]) AC_CONFIG_HEADERS([config.h])

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "H2LOAD" "1" "Mar 27, 2017" "1.21.0" "nghttp2" .TH "H2LOAD" "1" "Apr 09, 2017" "1.21.1" "nghttp2"
.SH NAME .SH NAME
h2load \- HTTP/2 benchmarking tool h2load \- HTTP/2 benchmarking tool
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "NGHTTP" "1" "Mar 27, 2017" "1.21.0" "nghttp2" .TH "NGHTTP" "1" "Apr 09, 2017" "1.21.1" "nghttp2"
.SH NAME .SH NAME
nghttp \- HTTP/2 client nghttp \- HTTP/2 client
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "NGHTTPD" "1" "Mar 27, 2017" "1.21.0" "nghttp2" .TH "NGHTTPD" "1" "Apr 09, 2017" "1.21.1" "nghttp2"
.SH NAME .SH NAME
nghttpd \- HTTP/2 server nghttpd \- HTTP/2 server
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "NGHTTPX" "1" "Mar 27, 2017" "1.21.0" "nghttp2" .TH "NGHTTPX" "1" "Apr 09, 2017" "1.21.1" "nghttp2"
.SH NAME .SH NAME
nghttpx \- HTTP/2 proxy nghttpx \- HTTP/2 proxy
. .

View File

@ -45,9 +45,9 @@ session_impl::session_impl(
io_service_(io_service), io_service_(io_service),
resolver_(io_service), resolver_(io_service),
deadline_(io_service), deadline_(io_service),
ping_(io_service),
connect_timeout_(connect_timeout), connect_timeout_(connect_timeout),
read_timeout_(boost::posix_time::seconds(60)), read_timeout_(boost::posix_time::seconds(60)),
ping_(io_service),
session_(nullptr), session_(nullptr),
data_pending_(nullptr), data_pending_(nullptr),
data_pendinglen_(0), data_pendinglen_(0),
@ -84,7 +84,6 @@ void session_impl::start_resolve(const std::string &host,
}); });
deadline_.async_wait(std::bind(&session_impl::handle_deadline, self)); deadline_.async_wait(std::bind(&session_impl::handle_deadline, self));
start_ping();
} }
void session_impl::handle_deadline() { void session_impl::handle_deadline() {
@ -135,6 +134,8 @@ void session_impl::connected(tcp::resolver::iterator endpoint_it) {
do_write(); do_write();
do_read(); do_read();
start_ping();
auto &connect_cb = on_connect(); auto &connect_cb = on_connect();
if (connect_cb) { if (connect_cb) {
connect_cb(endpoint_it); connect_cb(endpoint_it);

View File

@ -876,13 +876,12 @@ int htp_hdrs_completecb(http_parser *htp) {
if (resp.fs.parse_content_length() != 0) { if (resp.fs.parse_content_length() != 0) {
return -1; return -1;
} }
if (resp.fs.content_length != 0) {
return -1;
}
if (resp.fs.content_length == 0) { if (resp.fs.content_length == 0) {
auto cl = resp.fs.header(http2::HD_CONTENT_LENGTH); auto cl = resp.fs.header(http2::HD_CONTENT_LENGTH);
assert(cl); assert(cl);
http2::erase_header(cl); http2::erase_header(cl);
} else if (resp.fs.content_length != -1) {
return -1;
} }
} else if (resp.http_status / 100 == 1 || } else if (resp.http_status / 100 == 1 ||
(resp.http_status == 200 && req.method == HTTP_CONNECT)) { (resp.http_status == 200 && req.method == HTTP_CONNECT)) {