mirror of
https://github.com/nghttp2/nghttp2.git
synced 2025-12-09 03:28:52 +08:00
Compare commits
78 Commits
asio_threa
...
v1.20.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
acd05f2aa5 | ||
|
|
bb7718a64a | ||
|
|
e59fc725ab | ||
|
|
4fcd0fc144 | ||
|
|
373be22d7e | ||
|
|
b647a7c5b7 | ||
|
|
46ba9e080d | ||
|
|
e1b8317ae8 | ||
|
|
ea67864e08 | ||
|
|
6b286e0d94 | ||
|
|
d10ea5ea06 | ||
|
|
2af57c3cfc | ||
|
|
0c8b1a4f74 | ||
|
|
9d16292fe4 | ||
|
|
e2b9590c0f | ||
|
|
24fb640a55 | ||
|
|
e6a05cb66d | ||
|
|
12f9b09845 | ||
|
|
102b98813f | ||
|
|
1f55e5d34d | ||
|
|
5618e1bbc9 | ||
|
|
450ffaa6f0 | ||
|
|
dc15832030 | ||
|
|
0797e89a90 | ||
|
|
9f1543f81e | ||
|
|
a7c780a732 | ||
|
|
1bd6893084 | ||
|
|
ae21130b13 | ||
|
|
e06ed85747 | ||
|
|
83fd72c97e | ||
|
|
ace40f298d | ||
|
|
1133cc0bbc | ||
|
|
6960039aee | ||
|
|
bf5eeb831b | ||
|
|
e5b84fad09 | ||
|
|
cfb39171a7 | ||
|
|
2f6e1ac336 | ||
|
|
9e8d9d658a | ||
|
|
6ecfac6954 | ||
|
|
368775c2ed | ||
|
|
1e9a094edd | ||
|
|
ceb4dcf3b2 | ||
|
|
d2ef80fe3a | ||
|
|
79ae5aed67 | ||
|
|
56e86cd944 | ||
|
|
19a311ad62 | ||
|
|
b36e53cccd | ||
|
|
f3a5a0a0ec | ||
|
|
001d45efad | ||
|
|
56c455bca4 | ||
|
|
4bf3cb2cc0 | ||
|
|
c78528d54b | ||
|
|
f994664934 | ||
|
|
44e290da66 | ||
|
|
8aed101585 | ||
|
|
54ba1bebf2 | ||
|
|
e44c58282e | ||
|
|
c02b1041d9 | ||
|
|
0d20e07436 | ||
|
|
b7f956c967 | ||
|
|
786f52a81c | ||
|
|
23209baaf5 | ||
|
|
9d2503f9c0 | ||
|
|
1c31213aef | ||
|
|
fdb75ba5fe | ||
|
|
8f888b29bd | ||
|
|
298808f276 | ||
|
|
a231874e1e | ||
|
|
2101f4ae3f | ||
|
|
4a06f9684f | ||
|
|
5f31c09410 | ||
|
|
9a85c5264a | ||
|
|
fd475e4b2f | ||
|
|
5dc1d116c9 | ||
|
|
c566d3f475 | ||
|
|
68a724cf7b | ||
|
|
779ec50e73 | ||
|
|
f0b6b9508d |
5
AUTHORS
5
AUTHORS
@@ -17,11 +17,14 @@ github issues [2].
|
|||||||
Alek Storm
|
Alek Storm
|
||||||
Alex Nalivko
|
Alex Nalivko
|
||||||
Alexis La Goutte
|
Alexis La Goutte
|
||||||
|
Amir Pakdel
|
||||||
Anders Bakken
|
Anders Bakken
|
||||||
Andreas Pohl
|
Andreas Pohl
|
||||||
Andy Davies
|
Andy Davies
|
||||||
Ant Bryan
|
Ant Bryan
|
||||||
Benedikt Christoph Wolters
|
Benedikt Christoph Wolters
|
||||||
|
Benedikt Christoph Wolters
|
||||||
|
Bernard Spil
|
||||||
Bernard Spil
|
Bernard Spil
|
||||||
Brian Card
|
Brian Card
|
||||||
Brian Suh
|
Brian Suh
|
||||||
@@ -71,6 +74,7 @@ Tatsuhiko Kubo
|
|||||||
Tatsuhiro Tsujikawa
|
Tatsuhiro Tsujikawa
|
||||||
Tom Harwood
|
Tom Harwood
|
||||||
Tomasz Buchert
|
Tomasz Buchert
|
||||||
|
Tomasz Torcz
|
||||||
Vernon Tang
|
Vernon Tang
|
||||||
Viacheslav Biriukov
|
Viacheslav Biriukov
|
||||||
Viktor Szépe
|
Viktor Szépe
|
||||||
@@ -80,6 +84,7 @@ Zhuoyun Wei
|
|||||||
acesso
|
acesso
|
||||||
ayanamist
|
ayanamist
|
||||||
bxshi
|
bxshi
|
||||||
|
clemahieu
|
||||||
dalf
|
dalf
|
||||||
es
|
es
|
||||||
fangdingjun
|
fangdingjun
|
||||||
|
|||||||
@@ -24,13 +24,13 @@
|
|||||||
|
|
||||||
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.19.90)
|
project(nghttp2 VERSION 1.20.0)
|
||||||
|
|
||||||
# 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
|
||||||
set(LT_CURRENT 26)
|
set(LT_CURRENT 27)
|
||||||
set(LT_REVISION 4)
|
set(LT_REVISION 0)
|
||||||
set(LT_AGE 12)
|
set(LT_AGE 13)
|
||||||
|
|
||||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
||||||
include(Version)
|
include(Version)
|
||||||
|
|||||||
16
README.rst
16
README.rst
@@ -81,11 +81,19 @@ To enable the SPDY protocol in the application program ``nghttpx`` and
|
|||||||
|
|
||||||
* spdylay >= 1.3.2
|
* spdylay >= 1.3.2
|
||||||
|
|
||||||
|
We no longer recommend to build nghttp2 with SPDY protocol support
|
||||||
|
enabled. SPDY support will be removed soon.
|
||||||
|
|
||||||
To enable ``-a`` option (getting linked assets from the downloaded
|
To enable ``-a`` option (getting linked assets from the downloaded
|
||||||
resource) in ``nghttp``, the following package is required:
|
resource) in ``nghttp``, the following package is required:
|
||||||
|
|
||||||
* libxml2 >= 2.7.7
|
* libxml2 >= 2.7.7
|
||||||
|
|
||||||
|
To enable systemd support in nghttpx, the following package is
|
||||||
|
required:
|
||||||
|
|
||||||
|
* libsystemd-dev >= 209
|
||||||
|
|
||||||
The HPACK tools require the following package:
|
The HPACK tools require the following package:
|
||||||
|
|
||||||
* jansson >= 2.5
|
* jansson >= 2.5
|
||||||
@@ -115,15 +123,17 @@ The Python bindings require the following packages:
|
|||||||
* python >= 2.7
|
* python >= 2.7
|
||||||
* python-setuptools
|
* python-setuptools
|
||||||
|
|
||||||
If you are using Ubuntu 14.04 LTS (trusty) or Debian 7.0 (wheezy) and above run the following to install the needed packages:
|
If you are using Ubuntu 16.04 LTS (Xenial Xerus) or Debian 8 (jessie)
|
||||||
|
and above, run the following to install the required packages:
|
||||||
|
|
||||||
.. code-block:: text
|
.. code-block:: text
|
||||||
|
|
||||||
sudo apt-get install g++ make binutils autoconf automake autotools-dev libtool pkg-config \
|
sudo apt-get install g++ make binutils autoconf automake autotools-dev libtool pkg-config \
|
||||||
zlib1g-dev libcunit1-dev libssl-dev libxml2-dev libev-dev libevent-dev libjansson-dev \
|
zlib1g-dev libcunit1-dev libssl-dev libxml2-dev libev-dev libevent-dev libjansson-dev \
|
||||||
libc-ares-dev libjemalloc-dev cython python3-dev python-setuptools
|
libc-ares-dev libjemalloc-dev libsystemd-dev libspdylay-dev \
|
||||||
|
cython python3-dev python-setuptools
|
||||||
|
|
||||||
From Ubuntu 15.10, spdylay has been available as a package named
|
Since Ubuntu 15.10, spdylay has been available as a package named
|
||||||
`libspdylay-dev`. For the earlier Ubuntu release, you need to build
|
`libspdylay-dev`. For the earlier Ubuntu release, you need to build
|
||||||
it yourself: http://tatsuhiro-t.github.io/spdylay/
|
it yourself: http://tatsuhiro-t.github.io/spdylay/
|
||||||
|
|
||||||
|
|||||||
37
configure.ac
37
configure.ac
@@ -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.20.0-DEV], [t-tujikawa@users.sourceforge.net])
|
AC_INIT([nghttp2], [1.20.0], [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])
|
||||||
@@ -44,9 +44,9 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
|||||||
|
|
||||||
dnl See versioning rule:
|
dnl See versioning rule:
|
||||||
dnl http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
|
dnl http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
|
||||||
AC_SUBST(LT_CURRENT, 26)
|
AC_SUBST(LT_CURRENT, 27)
|
||||||
AC_SUBST(LT_REVISION, 4)
|
AC_SUBST(LT_REVISION, 0)
|
||||||
AC_SUBST(LT_AGE, 12)
|
AC_SUBST(LT_AGE, 13)
|
||||||
|
|
||||||
major=`echo $PACKAGE_VERSION |cut -d. -f1 | sed -e "s/[^0-9]//g"`
|
major=`echo $PACKAGE_VERSION |cut -d. -f1 | sed -e "s/[^0-9]//g"`
|
||||||
minor=`echo $PACKAGE_VERSION |cut -d. -f2 | sed -e "s/[^0-9]//g"`
|
minor=`echo $PACKAGE_VERSION |cut -d. -f2 | sed -e "s/[^0-9]//g"`
|
||||||
@@ -119,8 +119,13 @@ AC_ARG_WITH([jemalloc],
|
|||||||
|
|
||||||
AC_ARG_WITH([spdylay],
|
AC_ARG_WITH([spdylay],
|
||||||
[AS_HELP_STRING([--with-spdylay],
|
[AS_HELP_STRING([--with-spdylay],
|
||||||
[Use spdylay [default=check]])],
|
[Use spdylay [default=no]])],
|
||||||
[request_spdylay=$withval], [request_spdylay=check])
|
[request_spdylay=$withval], [request_spdylay=no])
|
||||||
|
|
||||||
|
AC_ARG_WITH([systemd],
|
||||||
|
[AS_HELP_STRING([--with-systemd],
|
||||||
|
[Enable systemd support in nghttpx [default=check]])],
|
||||||
|
[request_systemd=$withval], [request_systemd=check])
|
||||||
|
|
||||||
AC_ARG_WITH([mruby],
|
AC_ARG_WITH([mruby],
|
||||||
[AS_HELP_STRING([--with-mruby],
|
[AS_HELP_STRING([--with-mruby],
|
||||||
@@ -395,6 +400,25 @@ else
|
|||||||
AC_MSG_NOTICE($JANSSON_PKG_ERRORS)
|
AC_MSG_NOTICE($JANSSON_PKG_ERRORS)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# libsystemd (for src/nghttpx)
|
||||||
|
have_libsystemd=no
|
||||||
|
if test "x${request_systemd}" != "xno"; then
|
||||||
|
PKG_CHECK_MODULES([SYSTEMD], [libsystemd >= 209], [have_libsystemd=yes],
|
||||||
|
[have_libsystemd=no])
|
||||||
|
if test "x${have_libsystemd}" = "xyes"; then
|
||||||
|
AC_DEFINE([HAVE_LIBSYSTEMD], [1],
|
||||||
|
[Define to 1 if you have `libsystemd` library.])
|
||||||
|
else
|
||||||
|
AC_MSG_NOTICE($SYSTEMD_PKG_ERRORS)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x${request_systemd}" = "xyes" &&
|
||||||
|
test "x${have_libsystemd}" != "xyes"; then
|
||||||
|
AC_MSG_ERROR([systemd was requested (--with-systemd) but not found])
|
||||||
|
fi
|
||||||
|
|
||||||
# libxml2 (for src/nghttp)
|
# libxml2 (for src/nghttp)
|
||||||
PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.7.7],
|
PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.7.7],
|
||||||
[have_libxml2=yes], [have_libxml2=no])
|
[have_libxml2=yes], [have_libxml2=no])
|
||||||
@@ -914,6 +938,7 @@ AC_MSG_NOTICE([summary of build options:
|
|||||||
Jansson: ${have_jansson} (CFLAGS='${JANSSON_CFLAGS}' LIBS='${JANSSON_LIBS}')
|
Jansson: ${have_jansson} (CFLAGS='${JANSSON_CFLAGS}' LIBS='${JANSSON_LIBS}')
|
||||||
Jemalloc: ${have_jemalloc} (LIBS='${JEMALLOC_LIBS}')
|
Jemalloc: ${have_jemalloc} (LIBS='${JEMALLOC_LIBS}')
|
||||||
Zlib: ${have_zlib} (CFLAGS='${ZLIB_CFLAGS}' LIBS='${ZLIB_LIBS}')
|
Zlib: ${have_zlib} (CFLAGS='${ZLIB_CFLAGS}' LIBS='${ZLIB_LIBS}')
|
||||||
|
Systemd: ${have_libsystemd} (CFLAGS='${SYSTEMD_CFLAGS}' LIBS='${SYSTEMD_LIBS}')
|
||||||
Boost CPPFLAGS: ${BOOST_CPPFLAGS}
|
Boost CPPFLAGS: ${BOOST_CPPFLAGS}
|
||||||
Boost LDFLAGS: ${BOOST_LDFLAGS}
|
Boost LDFLAGS: ${BOOST_LDFLAGS}
|
||||||
Boost::ASIO: ${BOOST_ASIO_LIB}
|
Boost::ASIO: ${BOOST_ASIO_LIB}
|
||||||
|
|||||||
@@ -1,10 +1,17 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=HTTP/2 proxy
|
Description=HTTP/2 proxy
|
||||||
|
Documentation=man:nghttpx
|
||||||
After=network.target
|
After=network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=forking
|
Type=notify
|
||||||
ExecStart=@bindir@/nghttpx --conf=/etc/nghttpx/nghttpx.conf --pid-file=/run/nghttpx.pid --daemon
|
ExecStart=@bindir@/nghttpx --conf=/etc/nghttpx/nghttpx.conf
|
||||||
|
ExecReload=/bin/kill --signal HUP $MAINPID
|
||||||
|
KillSignal=SIGQUIT
|
||||||
|
PrivateTmp=yes
|
||||||
|
ProtectHome=yes
|
||||||
|
ProtectSystem=full
|
||||||
|
Restart=always
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ APIDOCS= \
|
|||||||
nghttp2_option_set_max_send_header_block_length.rst \
|
nghttp2_option_set_max_send_header_block_length.rst \
|
||||||
nghttp2_option_set_no_auto_ping_ack.rst \
|
nghttp2_option_set_no_auto_ping_ack.rst \
|
||||||
nghttp2_option_set_no_auto_window_update.rst \
|
nghttp2_option_set_no_auto_window_update.rst \
|
||||||
|
nghttp2_option_set_no_closed_streams.rst \
|
||||||
nghttp2_option_set_no_http_messaging.rst \
|
nghttp2_option_set_no_http_messaging.rst \
|
||||||
nghttp2_option_set_no_recv_client_magic.rst \
|
nghttp2_option_set_no_recv_client_magic.rst \
|
||||||
nghttp2_option_set_peer_max_concurrent_streams.rst \
|
nghttp2_option_set_peer_max_concurrent_streams.rst \
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ _nghttpx()
|
|||||||
_get_comp_words_by_ref cur prev
|
_get_comp_words_by_ref cur prev
|
||||||
case $cur in
|
case $cur in
|
||||||
-*)
|
-*)
|
||||||
COMPREPLY=( $( compgen -W '--worker-read-rate --include --frontend-http2-dump-response-header --tls-ticket-key-file --verify-client-cacert --max-response-header-fields --backend-http2-window-size --frontend-keep-alive-timeout --backend-request-buffer --max-request-header-fields --fastopen --backend-connect-timeout --conf --dns-lookup-timeout --backend-http2-max-concurrent-streams --worker-write-burst --npn-list --dns-max-try --fetch-ocsp-response-file --no-via --tls-session-cache-memcached-cert-file --no-http2-cipher-black-list --mruby-file --client-no-http2-cipher-black-list --stream-read-timeout --client-ciphers --forwarded-for --accesslog-syslog --dns-cache-timeout --frontend-http2-read-timeout --listener-disable-timeout --ciphers --client-psk-secrets --strip-incoming-x-forwarded-for --no-server-rewrite --private-key-passwd-file --backend-keep-alive-timeout --backend-http-proxy-uri --rlimit-nofile --tls-ticket-key-memcached-cert-file --ocsp-update-interval --forwarded-by --tls-session-cache-memcached-private-key-file --error-page --backend-write-timeout --tls-dyn-rec-warmup-threshold --tls-ticket-key-memcached-max-retry --frontend-http2-window-size --http2-no-cookie-crumbling --worker-read-burst --dh-param-file --accesslog-format --errorlog-syslog --request-header-field-buffer --api-max-request-body --frontend-http2-decoder-dynamic-table-size --errorlog-file --frontend-http2-max-concurrent-streams --psk-secrets --frontend-write-timeout --tls-ticket-key-cipher --read-burst --backend --server-name --insecure --backend-max-backoff --log-level --host-rewrite --tls-proto-list --tls-ticket-key-memcached-interval --frontend-http2-setting-timeout --frontend-http2-connection-window-size --worker-frontend-connections --syslog-facility --no-server-push --no-location-rewrite --tls-session-cache-memcached --no-ocsp --frontend-http2-encoder-dynamic-table-size --workers --add-forwarded --worker-write-rate --add-request-header --backend-http2-settings-timeout --subcert --ecdh-curves --no-kqueue --help --frontend-frame-debug --tls-sct-dir --pid-file --frontend-http2-dump-request-header --daemon --write-rate --altsvc --backend-http2-decoder-dynamic-table-size --user --add-x-forwarded-for --frontend-read-timeout --tls-ticket-key-memcached-max-fail --backlog --write-burst --backend-connections-per-host --response-header-field-buffer --tls-ticket-key-memcached-address-family --padding --tls-session-cache-memcached-address-family --stream-write-timeout --cacert --tls-ticket-key-memcached-private-key-file --accesslog-write-early --backend-address-family --backend-http2-connection-window-size --version --add-response-header --backend-read-timeout --frontend-http2-optimize-window-size --frontend --accesslog-file --http2-proxy --backend-http2-encoder-dynamic-table-size --client-private-key-file --client-cert-file --tls-ticket-key-memcached --tls-dyn-rec-idle-timeout --frontend-http2-optimize-write-buffer-size --verify-client --backend-response-buffer --read-rate --backend-connections-per-frontend --strip-incoming-forwarded ' -- "$cur" ) )
|
COMPREPLY=( $( compgen -W '--worker-read-rate --include --frontend-http2-dump-response-header --tls-ticket-key-file --verify-client-cacert --max-response-header-fields --backend-http2-window-size --frontend-keep-alive-timeout --backend-request-buffer --max-request-header-fields --fastopen --backend-connect-timeout --tls-max-proto-version --conf --dns-lookup-timeout --backend-http2-max-concurrent-streams --worker-write-burst --npn-list --dns-max-try --fetch-ocsp-response-file --no-via --tls-session-cache-memcached-cert-file --no-http2-cipher-black-list --mruby-file --client-no-http2-cipher-black-list --stream-read-timeout --client-ciphers --forwarded-for --accesslog-syslog --dns-cache-timeout --frontend-http2-read-timeout --listener-disable-timeout --ciphers --client-psk-secrets --strip-incoming-x-forwarded-for --no-server-rewrite --private-key-passwd-file --backend-keep-alive-timeout --backend-http-proxy-uri --frontend-max-requests --rlimit-nofile --tls-ticket-key-memcached-cert-file --ocsp-update-interval --forwarded-by --tls-session-cache-memcached-private-key-file --error-page --backend-write-timeout --tls-dyn-rec-warmup-threshold --tls-ticket-key-memcached-max-retry --frontend-http2-window-size --http2-no-cookie-crumbling --worker-read-burst --dh-param-file --accesslog-format --errorlog-syslog --redirect-https-port --request-header-field-buffer --api-max-request-body --frontend-http2-decoder-dynamic-table-size --errorlog-file --frontend-http2-max-concurrent-streams --psk-secrets --frontend-write-timeout --tls-ticket-key-cipher --read-burst --backend --server-name --insecure --backend-max-backoff --log-level --host-rewrite --tls-ticket-key-memcached-interval --frontend-http2-setting-timeout --frontend-http2-connection-window-size --worker-frontend-connections --syslog-facility --no-server-push --no-location-rewrite --single-thread --tls-session-cache-memcached --no-ocsp --backend-response-buffer --tls-min-proto-version --workers --add-forwarded --worker-write-rate --add-request-header --backend-http2-settings-timeout --subcert --ecdh-curves --no-kqueue --help --frontend-frame-debug --tls-sct-dir --pid-file --frontend-http2-dump-request-header --daemon --write-rate --altsvc --backend-http2-decoder-dynamic-table-size --user --add-x-forwarded-for --frontend-read-timeout --tls-ticket-key-memcached-max-fail --backlog --write-burst --backend-connections-per-host --response-header-field-buffer --tls-ticket-key-memcached-address-family --padding --tls-session-cache-memcached-address-family --stream-write-timeout --cacert --tls-ticket-key-memcached-private-key-file --accesslog-write-early --backend-address-family --backend-http2-connection-window-size --version --add-response-header --backend-read-timeout --frontend-http2-optimize-window-size --frontend --accesslog-file --http2-proxy --backend-http2-encoder-dynamic-table-size --client-private-key-file --client-cert-file --tls-ticket-key-memcached --tls-dyn-rec-idle-timeout --frontend-http2-optimize-write-buffer-size --verify-client --frontend-http2-encoder-dynamic-table-size --read-rate --backend-connections-per-frontend --strip-incoming-forwarded ' -- "$cur" ) )
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
_filedir
|
_filedir
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
.\" Man page generated from reStructuredText.
|
.\" Man page generated from reStructuredText.
|
||||||
.
|
.
|
||||||
.TH "H2LOAD" "1" "Jan 25, 2017" "1.19.0" "nghttp2"
|
.TH "H2LOAD" "1" "Feb 26, 2017" "1.20.0" "nghttp2"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
h2load \- HTTP/2 benchmarking tool
|
h2load \- HTTP/2 benchmarking tool
|
||||||
.
|
.
|
||||||
@@ -131,7 +131,7 @@ Default: \fBECDHE\-ECDSA\-CHACHA20\-POLY1305:ECDHE\-RSA\-CHACHA20\-POLY1305:ECDH
|
|||||||
.B \-p, \-\-no\-tls\-proto=<PROTOID>
|
.B \-p, \-\-no\-tls\-proto=<PROTOID>
|
||||||
Specify ALPN identifier of the protocol to be used when
|
Specify ALPN identifier of the protocol to be used when
|
||||||
accessing http URI without SSL/TLS.
|
accessing http URI without SSL/TLS.
|
||||||
Available protocols: spdy/2, spdy/3, spdy/3.1, h2c and
|
Available protocols: h2c and
|
||||||
http/1.1
|
http/1.1
|
||||||
.sp
|
.sp
|
||||||
Default: \fBh2c\fP
|
Default: \fBh2c\fP
|
||||||
@@ -233,7 +233,7 @@ NPN. The parameter must be delimited by a single comma
|
|||||||
only and any white spaces are treated as a part of
|
only and any white spaces are treated as a part of
|
||||||
protocol string.
|
protocol string.
|
||||||
.sp
|
.sp
|
||||||
Default: \fBh2,h2\-16,h2\-14,spdy/3.1,spdy/3,spdy/2,http/1.1\fP
|
Default: \fBh2,h2\-16,h2\-14,http/1.1\fP
|
||||||
.UNINDENT
|
.UNINDENT
|
||||||
.INDENT 0.0
|
.INDENT 0.0
|
||||||
.TP
|
.TP
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ OPTIONS
|
|||||||
|
|
||||||
Specify ALPN identifier of the protocol to be used when
|
Specify ALPN identifier of the protocol to be used when
|
||||||
accessing http URI without SSL/TLS.
|
accessing http URI without SSL/TLS.
|
||||||
Available protocols: spdy/2, spdy/3, spdy/3.1, h2c and
|
Available protocols: h2c and
|
||||||
http/1.1
|
http/1.1
|
||||||
|
|
||||||
Default: ``h2c``
|
Default: ``h2c``
|
||||||
@@ -196,7 +196,7 @@ OPTIONS
|
|||||||
only and any white spaces are treated as a part of
|
only and any white spaces are treated as a part of
|
||||||
protocol string.
|
protocol string.
|
||||||
|
|
||||||
Default: ``h2,h2-16,h2-14,spdy/3.1,spdy/3,spdy/2,http/1.1``
|
Default: ``h2,h2-16,h2-14,http/1.1``
|
||||||
|
|
||||||
.. option:: --h1
|
.. option:: --h1
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
.\" Man page generated from reStructuredText.
|
.\" Man page generated from reStructuredText.
|
||||||
.
|
.
|
||||||
.TH "NGHTTP" "1" "Jan 25, 2017" "1.19.0" "nghttp2"
|
.TH "NGHTTP" "1" "Feb 26, 2017" "1.20.0" "nghttp2"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
nghttp \- HTTP/2 client
|
nghttp \- HTTP/2 client
|
||||||
.
|
.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
.\" Man page generated from reStructuredText.
|
.\" Man page generated from reStructuredText.
|
||||||
.
|
.
|
||||||
.TH "NGHTTPD" "1" "Jan 25, 2017" "1.19.0" "nghttp2"
|
.TH "NGHTTPD" "1" "Feb 26, 2017" "1.20.0" "nghttp2"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
nghttpd \- HTTP/2 server
|
nghttpd \- HTTP/2 server
|
||||||
.
|
.
|
||||||
|
|||||||
168
doc/nghttpx.1
168
doc/nghttpx.1
@@ -1,6 +1,6 @@
|
|||||||
.\" Man page generated from reStructuredText.
|
.\" Man page generated from reStructuredText.
|
||||||
.
|
.
|
||||||
.TH "NGHTTPX" "1" "Jan 25, 2017" "1.19.0" "nghttp2"
|
.TH "NGHTTPX" "1" "Feb 26, 2017" "1.20.0" "nghttp2"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
nghttpx \- HTTP/2 proxy
|
nghttpx \- HTTP/2 proxy
|
||||||
.
|
.
|
||||||
@@ -121,12 +121,12 @@ Several parameters <PARAM> are accepted after <PATTERN>.
|
|||||||
The parameters are delimited by ";". The available
|
The parameters are delimited by ";". The available
|
||||||
parameters are: "proto=<PROTO>", "tls",
|
parameters are: "proto=<PROTO>", "tls",
|
||||||
"sni=<SNI_HOST>", "fall=<N>", "rise=<N>",
|
"sni=<SNI_HOST>", "fall=<N>", "rise=<N>",
|
||||||
"affinity=<METHOD>", and "dns". The parameter consists
|
"affinity=<METHOD>", "dns", and "redirect\-if\-not\-tls".
|
||||||
of keyword, and optionally followed by "=" and value.
|
The parameter consists of keyword, and optionally
|
||||||
For example, the parameter "proto=h2" consists of the
|
followed by "=" and value. For example, the parameter
|
||||||
keyword "proto" and value "h2". The parameter "tls"
|
"proto=h2" consists of the keyword "proto" and value
|
||||||
consists of the keyword "tls" without value. Each
|
"h2". The parameter "tls" consists of the keyword "tls"
|
||||||
parameter is described as follows.
|
without value. Each parameter is described as follows.
|
||||||
.sp
|
.sp
|
||||||
The backend application protocol can be specified using
|
The backend application protocol can be specified using
|
||||||
optional "proto" parameter, and in the form of
|
optional "proto" parameter, and in the form of
|
||||||
@@ -183,6 +183,19 @@ frequently. If "dns" is given, name resolution of
|
|||||||
backend host name at start up, or reloading
|
backend host name at start up, or reloading
|
||||||
configuration is skipped.
|
configuration is skipped.
|
||||||
.sp
|
.sp
|
||||||
|
If "redirect\-if\-not\-tls" parameter is used, the matched
|
||||||
|
backend requires that frontend connection is TLS
|
||||||
|
encrypted. If it isn\(aqt, nghttpx responds to the request
|
||||||
|
with 308 status code, and https URI the client should
|
||||||
|
use instead is included in Location header field. The
|
||||||
|
port number in redirect URI is 443 by default, and can
|
||||||
|
be changed using \fI\%\-\-redirect\-https\-port\fP option. If at
|
||||||
|
least one backend has "redirect\-if\-not\-tls" parameter,
|
||||||
|
this feature is enabled for all backend servers sharing
|
||||||
|
the same <PATTERN>. It is advised to set
|
||||||
|
"redirect\-if\-no\-tls" parameter to all backends
|
||||||
|
explicitly if this feature is desired.
|
||||||
|
.sp
|
||||||
Since ";" and ":" are used as delimiter, <PATTERN> must
|
Since ";" and ":" are used as delimiter, <PATTERN> must
|
||||||
not contain these characters. Since ";" has special
|
not contain these characters. Since ";" has special
|
||||||
meaning in shell, the option value must be quoted.
|
meaning in shell, the option value must be quoted.
|
||||||
@@ -267,6 +280,15 @@ Default: \fB1\fP
|
|||||||
.UNINDENT
|
.UNINDENT
|
||||||
.INDENT 0.0
|
.INDENT 0.0
|
||||||
.TP
|
.TP
|
||||||
|
.B \-\-single\-thread
|
||||||
|
Run everything in one thread inside the worker process.
|
||||||
|
This feature is provided for better debugging
|
||||||
|
experience, or for the platforms which lack thread
|
||||||
|
support. If threading is disabled, this option is
|
||||||
|
always enabled.
|
||||||
|
.UNINDENT
|
||||||
|
.INDENT 0.0
|
||||||
|
.TP
|
||||||
.B \-\-read\-rate=<SIZE>
|
.B \-\-read\-rate=<SIZE>
|
||||||
Set maximum average read rate on frontend connection.
|
Set maximum average read rate on frontend connection.
|
||||||
Setting 0 to this option means read rate is unlimited.
|
Setting 0 to this option means read rate is unlimited.
|
||||||
@@ -453,7 +475,7 @@ Default: \fB0\fP
|
|||||||
Specify write timeout for HTTP/2 and SPDY streams. 0
|
Specify write timeout for HTTP/2 and SPDY streams. 0
|
||||||
means no timeout.
|
means no timeout.
|
||||||
.sp
|
.sp
|
||||||
Default: \fB0\fP
|
Default: \fB1m\fP
|
||||||
.UNINDENT
|
.UNINDENT
|
||||||
.INDENT 0.0
|
.INDENT 0.0
|
||||||
.TP
|
.TP
|
||||||
@@ -579,9 +601,14 @@ password protected it\(aqll be requested interactively.
|
|||||||
.B \-\-subcert=<KEYPATH>:<CERTPATH>[[;<PARAM>]...]
|
.B \-\-subcert=<KEYPATH>:<CERTPATH>[[;<PARAM>]...]
|
||||||
Specify additional certificate and private key file.
|
Specify additional certificate and private key file.
|
||||||
nghttpx will choose certificates based on the hostname
|
nghttpx will choose certificates based on the hostname
|
||||||
indicated by client using TLS SNI extension. This
|
indicated by client using TLS SNI extension. If nghttpx
|
||||||
option can be used multiple times. To make OCSP
|
is built with OpenSSL >= 1.0.2, signature algorithms
|
||||||
stapling work, <CERTPATH> must be absolute path.
|
(e.g., ECDSA+SHA256, RSA+SHA256) presented by client are
|
||||||
|
also taken into consideration. This allows nghttpx to
|
||||||
|
send ECDSA certificate to modern clients, while sending
|
||||||
|
RSA based certificate to older clients. This option can
|
||||||
|
be used multiple times. To make OCSP stapling work,
|
||||||
|
<CERTPATH> must be absolute path.
|
||||||
.sp
|
.sp
|
||||||
Additional parameter can be specified in <PARAM>. The
|
Additional parameter can be specified in <PARAM>. The
|
||||||
available <PARAM> is "sct\-dir=<DIR>".
|
available <PARAM> is "sct\-dir=<DIR>".
|
||||||
@@ -609,7 +636,7 @@ NPN. The parameter must be delimited by a single comma
|
|||||||
only and any white spaces are treated as a part of
|
only and any white spaces are treated as a part of
|
||||||
protocol string.
|
protocol string.
|
||||||
.sp
|
.sp
|
||||||
Default: \fBh2,h2\-16,h2\-14,spdy/3.1,http/1.1\fP
|
Default: \fBh2,h2\-16,h2\-14,http/1.1\fP
|
||||||
.UNINDENT
|
.UNINDENT
|
||||||
.INDENT 0.0
|
.INDENT 0.0
|
||||||
.TP
|
.TP
|
||||||
@@ -637,18 +664,29 @@ backend client authentication.
|
|||||||
.UNINDENT
|
.UNINDENT
|
||||||
.INDENT 0.0
|
.INDENT 0.0
|
||||||
.TP
|
.TP
|
||||||
.B \-\-tls\-proto\-list=<LIST>
|
.B \-\-tls\-min\-proto\-version=<VER>
|
||||||
Comma delimited list of SSL/TLS protocol to be enabled.
|
Specify minimum SSL/TLS protocol. The name matching is
|
||||||
The following protocols are available: TLSv1.2, TLSv1.1
|
done in case\-insensitive manner. The versions between
|
||||||
and TLSv1.0. The name matching is done in
|
\fI\%\-\-tls\-min\-proto\-version\fP and \fI\%\-\-tls\-max\-proto\-version\fP are
|
||||||
case\-insensitive manner. The parameter must be
|
enabled. If the protocol list advertised by client does
|
||||||
delimited by a single comma only and any white spaces
|
not overlap this range, you will receive the error
|
||||||
are treated as a part of protocol string. If the
|
message "unknown protocol". The available versions are:
|
||||||
protocol list advertised by client does not overlap this
|
TLSv1.2, TLSv1.1, and TLSv1.0
|
||||||
list, you will receive the error message "unknown
|
|
||||||
protocol".
|
|
||||||
.sp
|
.sp
|
||||||
Default: \fBTLSv1.2,TLSv1.1\fP
|
Default: \fBTLSv1.1\fP
|
||||||
|
.UNINDENT
|
||||||
|
.INDENT 0.0
|
||||||
|
.TP
|
||||||
|
.B \-\-tls\-max\-proto\-version=<VER>
|
||||||
|
Specify maximum SSL/TLS protocol. The name matching is
|
||||||
|
done in case\-insensitive manner. The versions between
|
||||||
|
\fI\%\-\-tls\-min\-proto\-version\fP and \fI\%\-\-tls\-max\-proto\-version\fP are
|
||||||
|
enabled. If the protocol list advertised by client does
|
||||||
|
not overlap this range, you will receive the error
|
||||||
|
message "unknown protocol". The available versions are:
|
||||||
|
TLSv1.2, TLSv1.1, and TLSv1.0
|
||||||
|
.sp
|
||||||
|
Default: \fBTLSv1.2\fP
|
||||||
.UNINDENT
|
.UNINDENT
|
||||||
.INDENT 0.0
|
.INDENT 0.0
|
||||||
.TP
|
.TP
|
||||||
@@ -1313,7 +1351,7 @@ backend server, the custom error pages are not used.
|
|||||||
.B \-\-server\-name=<NAME>
|
.B \-\-server\-name=<NAME>
|
||||||
Change server response header field value to <NAME>.
|
Change server response header field value to <NAME>.
|
||||||
.sp
|
.sp
|
||||||
Default: \fBnghttpx nghttp2/1.19.0\fP
|
Default: \fBnghttpx\fP
|
||||||
.UNINDENT
|
.UNINDENT
|
||||||
.INDENT 0.0
|
.INDENT 0.0
|
||||||
.TP
|
.TP
|
||||||
@@ -1322,6 +1360,15 @@ Don\(aqt rewrite server header field in default mode. When
|
|||||||
\fI\%\-\-http2\-proxy\fP is used, these headers will not be altered
|
\fI\%\-\-http2\-proxy\fP is used, these headers will not be altered
|
||||||
regardless of this option.
|
regardless of this option.
|
||||||
.UNINDENT
|
.UNINDENT
|
||||||
|
.INDENT 0.0
|
||||||
|
.TP
|
||||||
|
.B \-\-redirect\-https\-port=<PORT>
|
||||||
|
Specify the port number which appears in Location header
|
||||||
|
field when redirect to HTTPS URI is made due to
|
||||||
|
"redirect\-if\-not\-tls" parameter in \fI\%\-\-backend\fP option.
|
||||||
|
.sp
|
||||||
|
Default: \fB443\fP
|
||||||
|
.UNINDENT
|
||||||
.SS API
|
.SS API
|
||||||
.INDENT 0.0
|
.INDENT 0.0
|
||||||
.TP
|
.TP
|
||||||
@@ -1357,6 +1404,16 @@ lookup.
|
|||||||
.sp
|
.sp
|
||||||
Default: \fB2\fP
|
Default: \fB2\fP
|
||||||
.UNINDENT
|
.UNINDENT
|
||||||
|
.INDENT 0.0
|
||||||
|
.TP
|
||||||
|
.B \-\-frontend\-max\-requests=<N>
|
||||||
|
The number of requests that single frontend connection
|
||||||
|
can process. For HTTP/2, this is the number of streams
|
||||||
|
in one HTTP/2 connection. For HTTP/1, this is the
|
||||||
|
number of keep alive requests. This is hint to nghttpx,
|
||||||
|
and it may allow additional few requests. The default
|
||||||
|
value is unlimited.
|
||||||
|
.UNINDENT
|
||||||
.SS Debug
|
.SS Debug
|
||||||
.INDENT 0.0
|
.INDENT 0.0
|
||||||
.TP
|
.TP
|
||||||
@@ -1538,16 +1595,23 @@ Reload configuration file given in \fI\%\-\-conf\fP\&.
|
|||||||
.TP
|
.TP
|
||||||
.B SIGUSR1
|
.B SIGUSR1
|
||||||
Reopen log files.
|
Reopen log files.
|
||||||
.TP
|
.UNINDENT
|
||||||
.B SIGUSR2
|
.sp
|
||||||
|
SIGUSR2
|
||||||
|
.INDENT 0.0
|
||||||
|
.INDENT 3.5
|
||||||
Fork and execute nghttpx. It will execute the binary in the same
|
Fork and execute nghttpx. It will execute the binary in the same
|
||||||
path with same command\-line arguments and environment variables.
|
path with same command\-line arguments and environment variables. As
|
||||||
After new process comes up, sending SIGQUIT to the original process
|
of nghttpx version 1.20.0, the new master process sends SIGQUIT to
|
||||||
to perform hot swapping. The difference between SIGUSR2 + SIGQUIT
|
the original master process when it is ready to serve requests. For
|
||||||
and SIGHUP is that former is usually used to execute new binary, and
|
the earlier versions of nghttpx, user has to send SIGQUIT to the
|
||||||
the master process is newly spawned. On the other hand, the latter
|
original master process.
|
||||||
just reloads configuration file, and the same master process
|
.sp
|
||||||
continues to exist.
|
The difference between SIGUSR2 (+ SIGQUIT) and SIGHUP is that former
|
||||||
|
is usually used to execute new binary, and the master process is
|
||||||
|
newly spawned. On the other hand, the latter just reloads
|
||||||
|
configuration file, and the same master process continues to exist.
|
||||||
|
.UNINDENT
|
||||||
.UNINDENT
|
.UNINDENT
|
||||||
.sp
|
.sp
|
||||||
\fBNOTE:\fP
|
\fBNOTE:\fP
|
||||||
@@ -1968,6 +2032,19 @@ completely custom header fields, first call
|
|||||||
existing header fields, and then add required header fields.
|
existing header fields, and then add required header fields.
|
||||||
It is an error to call this method twice for a given request.
|
It is an error to call this method twice for a given request.
|
||||||
.UNINDENT
|
.UNINDENT
|
||||||
|
.INDENT 7.0
|
||||||
|
.TP
|
||||||
|
.B send_info(status, headers)
|
||||||
|
Send non\-final (informational) response to a client. \fIstatus\fP
|
||||||
|
must be in the range [100, 199], inclusive. \fIheaders\fP is a
|
||||||
|
hash containing response header fields. Its key must be a
|
||||||
|
string, and the associated value must be either string or
|
||||||
|
array of strings. Since this is not a final response, even if
|
||||||
|
this method is invoked, request is still forwarded to a
|
||||||
|
backend unless \fI\%Nghttpx::Response#return\fP is called.
|
||||||
|
This method can be called multiple times. It cannot be called
|
||||||
|
after \fI\%Nghttpx::Response#return\fP is called.
|
||||||
|
.UNINDENT
|
||||||
.UNINDENT
|
.UNINDENT
|
||||||
.SS MRUBY EXAMPLES
|
.SS MRUBY EXAMPLES
|
||||||
.sp
|
.sp
|
||||||
@@ -2043,15 +2120,18 @@ The request was failed. No change has been made.
|
|||||||
HTTP status code
|
HTTP status code
|
||||||
.UNINDENT
|
.UNINDENT
|
||||||
.sp
|
.sp
|
||||||
|
Additionally, depending on the API endpoint, \fBdata\fP key may be
|
||||||
|
present, and its value contains the API endpoint specific data.
|
||||||
|
.sp
|
||||||
We wrote "normally", since nghttpx may return ordinal HTML response in
|
We wrote "normally", since nghttpx may return ordinal HTML response in
|
||||||
some cases where the error has occurred before reaching API endpoint
|
some cases where the error has occurred before reaching API endpoint
|
||||||
(e.g., header field is too large).
|
(e.g., header field is too large).
|
||||||
.sp
|
.sp
|
||||||
The following section describes available API endpoints.
|
The following section describes available API endpoints.
|
||||||
.SS PUT /api/v1beta1/backendconfig
|
.SS POST /api/v1beta1/backendconfig
|
||||||
.sp
|
.sp
|
||||||
This API replaces the current backend server settings with the
|
This API replaces the current backend server settings with the
|
||||||
requested ones. The request method should be PUT, but POST is also
|
requested ones. The request method should be POST, but PUT is also
|
||||||
acceptable. The request body must be nghttpx configuration file
|
acceptable. The request body must be nghttpx configuration file
|
||||||
format. For configuration file format, see \fI\%FILES\fP section. The
|
format. For configuration file format, see \fI\%FILES\fP section. The
|
||||||
line separator inside the request body must be single LF (0x0A).
|
line separator inside the request body must be single LF (0x0A).
|
||||||
@@ -2070,6 +2150,24 @@ The one limitation is that only numeric IP address is allowd in
|
|||||||
\fI\%backend\fP in request body unless "dns" parameter
|
\fI\%backend\fP in request body unless "dns" parameter
|
||||||
is used while non numeric hostname is allowed in command\-line or
|
is used while non numeric hostname is allowed in command\-line or
|
||||||
configuration file is read using \fI\%\-\-conf\fP\&.
|
configuration file is read using \fI\%\-\-conf\fP\&.
|
||||||
|
.SS GET /api/v1beta1/configrevision
|
||||||
|
.sp
|
||||||
|
This API returns configuration revision of the current nghttpx. The
|
||||||
|
configuration revision is opaque string, and it changes after each
|
||||||
|
reloading by SIGHUP. With this API, an external application knows
|
||||||
|
that whether nghttpx has finished reloading its configuration by
|
||||||
|
comparing the configuration revisions between before and after
|
||||||
|
reloading. It is recommended to disable persistent (keep\-alive)
|
||||||
|
connection for this purpose in order to avoid to send a request using
|
||||||
|
the reused connection which may bound to an old process.
|
||||||
|
.sp
|
||||||
|
This API returns response including \fBdata\fP key. Its value is JSON
|
||||||
|
object, and it contains at least the following key:
|
||||||
|
.INDENT 0.0
|
||||||
|
.TP
|
||||||
|
.B configRevision
|
||||||
|
The configuration revision of the current nghttpx
|
||||||
|
.UNINDENT
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
.sp
|
.sp
|
||||||
\fBnghttp(1)\fP, \fBnghttpd(1)\fP, \fBh2load(1)\fP
|
\fBnghttp(1)\fP, \fBnghttpd(1)\fP, \fBh2load(1)\fP
|
||||||
|
|||||||
@@ -105,12 +105,12 @@ Connections
|
|||||||
The parameters are delimited by ";". The available
|
The parameters are delimited by ";". The available
|
||||||
parameters are: "proto=<PROTO>", "tls",
|
parameters are: "proto=<PROTO>", "tls",
|
||||||
"sni=<SNI_HOST>", "fall=<N>", "rise=<N>",
|
"sni=<SNI_HOST>", "fall=<N>", "rise=<N>",
|
||||||
"affinity=<METHOD>", and "dns". The parameter consists
|
"affinity=<METHOD>", "dns", and "redirect-if-not-tls".
|
||||||
of keyword, and optionally followed by "=" and value.
|
The parameter consists of keyword, and optionally
|
||||||
For example, the parameter "proto=h2" consists of the
|
followed by "=" and value. For example, the parameter
|
||||||
keyword "proto" and value "h2". The parameter "tls"
|
"proto=h2" consists of the keyword "proto" and value
|
||||||
consists of the keyword "tls" without value. Each
|
"h2". The parameter "tls" consists of the keyword "tls"
|
||||||
parameter is described as follows.
|
without value. Each parameter is described as follows.
|
||||||
|
|
||||||
The backend application protocol can be specified using
|
The backend application protocol can be specified using
|
||||||
optional "proto" parameter, and in the form of
|
optional "proto" parameter, and in the form of
|
||||||
@@ -167,6 +167,19 @@ Connections
|
|||||||
backend host name at start up, or reloading
|
backend host name at start up, or reloading
|
||||||
configuration is skipped.
|
configuration is skipped.
|
||||||
|
|
||||||
|
If "redirect-if-not-tls" parameter is used, the matched
|
||||||
|
backend requires that frontend connection is TLS
|
||||||
|
encrypted. If it isn't, nghttpx responds to the request
|
||||||
|
with 308 status code, and https URI the client should
|
||||||
|
use instead is included in Location header field. The
|
||||||
|
port number in redirect URI is 443 by default, and can
|
||||||
|
be changed using :option:`--redirect-https-port` option. If at
|
||||||
|
least one backend has "redirect-if-not-tls" parameter,
|
||||||
|
this feature is enabled for all backend servers sharing
|
||||||
|
the same <PATTERN>. It is advised to set
|
||||||
|
"redirect-if-no-tls" parameter to all backends
|
||||||
|
explicitly if this feature is desired.
|
||||||
|
|
||||||
Since ";" and ":" are used as delimiter, <PATTERN> must
|
Since ";" and ":" are used as delimiter, <PATTERN> must
|
||||||
not contain these characters. Since ";" has special
|
not contain these characters. Since ";" has special
|
||||||
meaning in shell, the option value must be quoted.
|
meaning in shell, the option value must be quoted.
|
||||||
@@ -249,6 +262,14 @@ Performance
|
|||||||
|
|
||||||
Default: ``1``
|
Default: ``1``
|
||||||
|
|
||||||
|
.. option:: --single-thread
|
||||||
|
|
||||||
|
Run everything in one thread inside the worker process.
|
||||||
|
This feature is provided for better debugging
|
||||||
|
experience, or for the platforms which lack thread
|
||||||
|
support. If threading is disabled, this option is
|
||||||
|
always enabled.
|
||||||
|
|
||||||
.. option:: --read-rate=<SIZE>
|
.. option:: --read-rate=<SIZE>
|
||||||
|
|
||||||
Set maximum average read rate on frontend connection.
|
Set maximum average read rate on frontend connection.
|
||||||
@@ -418,7 +439,7 @@ Timeout
|
|||||||
Specify write timeout for HTTP/2 and SPDY streams. 0
|
Specify write timeout for HTTP/2 and SPDY streams. 0
|
||||||
means no timeout.
|
means no timeout.
|
||||||
|
|
||||||
Default: ``0``
|
Default: ``1m``
|
||||||
|
|
||||||
.. option:: --backend-read-timeout=<DURATION>
|
.. option:: --backend-read-timeout=<DURATION>
|
||||||
|
|
||||||
@@ -532,9 +553,14 @@ SSL/TLS
|
|||||||
|
|
||||||
Specify additional certificate and private key file.
|
Specify additional certificate and private key file.
|
||||||
nghttpx will choose certificates based on the hostname
|
nghttpx will choose certificates based on the hostname
|
||||||
indicated by client using TLS SNI extension. This
|
indicated by client using TLS SNI extension. If nghttpx
|
||||||
option can be used multiple times. To make OCSP
|
is built with OpenSSL >= 1.0.2, signature algorithms
|
||||||
stapling work, <CERTPATH> must be absolute path.
|
(e.g., ECDSA+SHA256, RSA+SHA256) presented by client are
|
||||||
|
also taken into consideration. This allows nghttpx to
|
||||||
|
send ECDSA certificate to modern clients, while sending
|
||||||
|
RSA based certificate to older clients. This option can
|
||||||
|
be used multiple times. To make OCSP stapling work,
|
||||||
|
<CERTPATH> must be absolute path.
|
||||||
|
|
||||||
Additional parameter can be specified in <PARAM>. The
|
Additional parameter can be specified in <PARAM>. The
|
||||||
available <PARAM> is "sct-dir=<DIR>".
|
available <PARAM> is "sct-dir=<DIR>".
|
||||||
@@ -560,7 +586,7 @@ SSL/TLS
|
|||||||
only and any white spaces are treated as a part of
|
only and any white spaces are treated as a part of
|
||||||
protocol string.
|
protocol string.
|
||||||
|
|
||||||
Default: ``h2,h2-16,h2-14,spdy/3.1,http/1.1``
|
Default: ``h2,h2-16,h2-14,http/1.1``
|
||||||
|
|
||||||
.. option:: --verify-client
|
.. option:: --verify-client
|
||||||
|
|
||||||
@@ -582,19 +608,29 @@ SSL/TLS
|
|||||||
Path to file that contains client certificate used in
|
Path to file that contains client certificate used in
|
||||||
backend client authentication.
|
backend client authentication.
|
||||||
|
|
||||||
.. option:: --tls-proto-list=<LIST>
|
.. option:: --tls-min-proto-version=<VER>
|
||||||
|
|
||||||
Comma delimited list of SSL/TLS protocol to be enabled.
|
Specify minimum SSL/TLS protocol. The name matching is
|
||||||
The following protocols are available: TLSv1.2, TLSv1.1
|
done in case-insensitive manner. The versions between
|
||||||
and TLSv1.0. The name matching is done in
|
:option:`--tls-min-proto-version` and :option:`\--tls-max-proto-version` are
|
||||||
case-insensitive manner. The parameter must be
|
enabled. If the protocol list advertised by client does
|
||||||
delimited by a single comma only and any white spaces
|
not overlap this range, you will receive the error
|
||||||
are treated as a part of protocol string. If the
|
message "unknown protocol". The available versions are:
|
||||||
protocol list advertised by client does not overlap this
|
TLSv1.2, TLSv1.1, and TLSv1.0
|
||||||
list, you will receive the error message "unknown
|
|
||||||
protocol".
|
|
||||||
|
|
||||||
Default: ``TLSv1.2,TLSv1.1``
|
Default: ``TLSv1.1``
|
||||||
|
|
||||||
|
.. option:: --tls-max-proto-version=<VER>
|
||||||
|
|
||||||
|
Specify maximum SSL/TLS protocol. The name matching is
|
||||||
|
done in case-insensitive manner. The versions between
|
||||||
|
:option:`--tls-min-proto-version` and :option:`\--tls-max-proto-version` are
|
||||||
|
enabled. If the protocol list advertised by client does
|
||||||
|
not overlap this range, you will receive the error
|
||||||
|
message "unknown protocol". The available versions are:
|
||||||
|
TLSv1.2, TLSv1.1, and TLSv1.0
|
||||||
|
|
||||||
|
Default: ``TLSv1.2``
|
||||||
|
|
||||||
.. option:: --tls-ticket-key-file=<PATH>
|
.. option:: --tls-ticket-key-file=<PATH>
|
||||||
|
|
||||||
@@ -1188,7 +1224,7 @@ HTTP
|
|||||||
|
|
||||||
Change server response header field value to <NAME>.
|
Change server response header field value to <NAME>.
|
||||||
|
|
||||||
Default: ``nghttpx nghttp2/1.19.0``
|
Default: ``nghttpx``
|
||||||
|
|
||||||
.. option:: --no-server-rewrite
|
.. option:: --no-server-rewrite
|
||||||
|
|
||||||
@@ -1196,6 +1232,14 @@ HTTP
|
|||||||
:option:`--http2-proxy` is used, these headers will not be altered
|
:option:`--http2-proxy` is used, these headers will not be altered
|
||||||
regardless of this option.
|
regardless of this option.
|
||||||
|
|
||||||
|
.. option:: --redirect-https-port=<PORT>
|
||||||
|
|
||||||
|
Specify the port number which appears in Location header
|
||||||
|
field when redirect to HTTPS URI is made due to
|
||||||
|
"redirect-if-not-tls" parameter in :option:`--backend` option.
|
||||||
|
|
||||||
|
Default: ``443``
|
||||||
|
|
||||||
|
|
||||||
API
|
API
|
||||||
~~~
|
~~~
|
||||||
@@ -1233,6 +1277,15 @@ DNS
|
|||||||
|
|
||||||
Default: ``2``
|
Default: ``2``
|
||||||
|
|
||||||
|
.. option:: --frontend-max-requests=<N>
|
||||||
|
|
||||||
|
The number of requests that single frontend connection
|
||||||
|
can process. For HTTP/2, this is the number of streams
|
||||||
|
in one HTTP/2 connection. For HTTP/1, this is the
|
||||||
|
number of keep alive requests. This is hint to nghttpx,
|
||||||
|
and it may allow additional few requests. The default
|
||||||
|
value is unlimited.
|
||||||
|
|
||||||
|
|
||||||
Debug
|
Debug
|
||||||
~~~~~
|
~~~~~
|
||||||
@@ -1405,14 +1458,18 @@ SIGUSR1
|
|||||||
Reopen log files.
|
Reopen log files.
|
||||||
|
|
||||||
SIGUSR2
|
SIGUSR2
|
||||||
|
|
||||||
Fork and execute nghttpx. It will execute the binary in the same
|
Fork and execute nghttpx. It will execute the binary in the same
|
||||||
path with same command-line arguments and environment variables.
|
path with same command-line arguments and environment variables. As
|
||||||
After new process comes up, sending SIGQUIT to the original process
|
of nghttpx version 1.20.0, the new master process sends SIGQUIT to
|
||||||
to perform hot swapping. The difference between SIGUSR2 + SIGQUIT
|
the original master process when it is ready to serve requests. For
|
||||||
and SIGHUP is that former is usually used to execute new binary, and
|
the earlier versions of nghttpx, user has to send SIGQUIT to the
|
||||||
the master process is newly spawned. On the other hand, the latter
|
original master process.
|
||||||
just reloads configuration file, and the same master process
|
|
||||||
continues to exist.
|
The difference between SIGUSR2 (+ SIGQUIT) and SIGHUP is that former
|
||||||
|
is usually used to execute new binary, and the master process is
|
||||||
|
newly spawned. On the other hand, the latter just reloads
|
||||||
|
configuration file, and the same master process continues to exist.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@@ -1804,6 +1861,18 @@ respectively.
|
|||||||
existing header fields, and then add required header fields.
|
existing header fields, and then add required header fields.
|
||||||
It is an error to call this method twice for a given request.
|
It is an error to call this method twice for a given request.
|
||||||
|
|
||||||
|
.. rb:method:: send_info(status, headers)
|
||||||
|
|
||||||
|
Send non-final (informational) response to a client. *status*
|
||||||
|
must be in the range [100, 199], inclusive. *headers* is a
|
||||||
|
hash containing response header fields. Its key must be a
|
||||||
|
string, and the associated value must be either string or
|
||||||
|
array of strings. Since this is not a final response, even if
|
||||||
|
this method is invoked, request is still forwarded to a
|
||||||
|
backend unless :rb:meth:`Nghttpx::Response#return` is called.
|
||||||
|
This method can be called multiple times. It cannot be called
|
||||||
|
after :rb:meth:`Nghttpx::Response#return` is called.
|
||||||
|
|
||||||
MRUBY EXAMPLES
|
MRUBY EXAMPLES
|
||||||
~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~
|
||||||
|
|
||||||
@@ -1865,17 +1934,20 @@ status
|
|||||||
code
|
code
|
||||||
HTTP status code
|
HTTP status code
|
||||||
|
|
||||||
|
Additionally, depending on the API endpoint, ``data`` key may be
|
||||||
|
present, and its value contains the API endpoint specific data.
|
||||||
|
|
||||||
We wrote "normally", since nghttpx may return ordinal HTML response in
|
We wrote "normally", since nghttpx may return ordinal HTML response in
|
||||||
some cases where the error has occurred before reaching API endpoint
|
some cases where the error has occurred before reaching API endpoint
|
||||||
(e.g., header field is too large).
|
(e.g., header field is too large).
|
||||||
|
|
||||||
The following section describes available API endpoints.
|
The following section describes available API endpoints.
|
||||||
|
|
||||||
PUT /api/v1beta1/backendconfig
|
POST /api/v1beta1/backendconfig
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
This API replaces the current backend server settings with the
|
This API replaces the current backend server settings with the
|
||||||
requested ones. The request method should be PUT, but POST is also
|
requested ones. The request method should be POST, but PUT is also
|
||||||
acceptable. The request body must be nghttpx configuration file
|
acceptable. The request body must be nghttpx configuration file
|
||||||
format. For configuration file format, see `FILES`_ section. The
|
format. For configuration file format, see `FILES`_ section. The
|
||||||
line separator inside the request body must be single LF (0x0A).
|
line separator inside the request body must be single LF (0x0A).
|
||||||
@@ -1896,6 +1968,25 @@ The one limitation is that only numeric IP address is allowd in
|
|||||||
is used while non numeric hostname is allowed in command-line or
|
is used while non numeric hostname is allowed in command-line or
|
||||||
configuration file is read using :option:`--conf`.
|
configuration file is read using :option:`--conf`.
|
||||||
|
|
||||||
|
GET /api/v1beta1/configrevision
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
This API returns configuration revision of the current nghttpx. The
|
||||||
|
configuration revision is opaque string, and it changes after each
|
||||||
|
reloading by SIGHUP. With this API, an external application knows
|
||||||
|
that whether nghttpx has finished reloading its configuration by
|
||||||
|
comparing the configuration revisions between before and after
|
||||||
|
reloading. It is recommended to disable persistent (keep-alive)
|
||||||
|
connection for this purpose in order to avoid to send a request using
|
||||||
|
the reused connection which may bound to an old process.
|
||||||
|
|
||||||
|
This API returns response including ``data`` key. Its value is JSON
|
||||||
|
object, and it contains at least the following key:
|
||||||
|
|
||||||
|
configRevision
|
||||||
|
The configuration revision of the current nghttpx
|
||||||
|
|
||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
|||||||
@@ -83,14 +83,18 @@ SIGUSR1
|
|||||||
Reopen log files.
|
Reopen log files.
|
||||||
|
|
||||||
SIGUSR2
|
SIGUSR2
|
||||||
|
|
||||||
Fork and execute nghttpx. It will execute the binary in the same
|
Fork and execute nghttpx. It will execute the binary in the same
|
||||||
path with same command-line arguments and environment variables.
|
path with same command-line arguments and environment variables. As
|
||||||
After new process comes up, sending SIGQUIT to the original process
|
of nghttpx version 1.20.0, the new master process sends SIGQUIT to
|
||||||
to perform hot swapping. The difference between SIGUSR2 + SIGQUIT
|
the original master process when it is ready to serve requests. For
|
||||||
and SIGHUP is that former is usually used to execute new binary, and
|
the earlier versions of nghttpx, user has to send SIGQUIT to the
|
||||||
the master process is newly spawned. On the other hand, the latter
|
original master process.
|
||||||
just reloads configuration file, and the same master process
|
|
||||||
continues to exist.
|
The difference between SIGUSR2 (+ SIGQUIT) and SIGHUP is that former
|
||||||
|
is usually used to execute new binary, and the master process is
|
||||||
|
newly spawned. On the other hand, the latter just reloads
|
||||||
|
configuration file, and the same master process continues to exist.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@@ -482,6 +486,18 @@ respectively.
|
|||||||
existing header fields, and then add required header fields.
|
existing header fields, and then add required header fields.
|
||||||
It is an error to call this method twice for a given request.
|
It is an error to call this method twice for a given request.
|
||||||
|
|
||||||
|
.. rb:method:: send_info(status, headers)
|
||||||
|
|
||||||
|
Send non-final (informational) response to a client. *status*
|
||||||
|
must be in the range [100, 199], inclusive. *headers* is a
|
||||||
|
hash containing response header fields. Its key must be a
|
||||||
|
string, and the associated value must be either string or
|
||||||
|
array of strings. Since this is not a final response, even if
|
||||||
|
this method is invoked, request is still forwarded to a
|
||||||
|
backend unless :rb:meth:`Nghttpx::Response#return` is called.
|
||||||
|
This method can be called multiple times. It cannot be called
|
||||||
|
after :rb:meth:`Nghttpx::Response#return` is called.
|
||||||
|
|
||||||
MRUBY EXAMPLES
|
MRUBY EXAMPLES
|
||||||
~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~
|
||||||
|
|
||||||
@@ -543,6 +559,9 @@ status
|
|||||||
code
|
code
|
||||||
HTTP status code
|
HTTP status code
|
||||||
|
|
||||||
|
Additionally, depending on the API endpoint, ``data`` key may be
|
||||||
|
present, and its value contains the API endpoint specific data.
|
||||||
|
|
||||||
We wrote "normally", since nghttpx may return ordinal HTML response in
|
We wrote "normally", since nghttpx may return ordinal HTML response in
|
||||||
some cases where the error has occurred before reaching API endpoint
|
some cases where the error has occurred before reaching API endpoint
|
||||||
(e.g., header field is too large).
|
(e.g., header field is too large).
|
||||||
@@ -574,6 +593,25 @@ The one limitation is that only numeric IP address is allowd in
|
|||||||
is used while non numeric hostname is allowed in command-line or
|
is used while non numeric hostname is allowed in command-line or
|
||||||
configuration file is read using :option:`--conf`.
|
configuration file is read using :option:`--conf`.
|
||||||
|
|
||||||
|
GET /api/v1beta1/configrevision
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
This API returns configuration revision of the current nghttpx. The
|
||||||
|
configuration revision is opaque string, and it changes after each
|
||||||
|
reloading by SIGHUP. With this API, an external application knows
|
||||||
|
that whether nghttpx has finished reloading its configuration by
|
||||||
|
comparing the configuration revisions between before and after
|
||||||
|
reloading. It is recommended to disable persistent (keep-alive)
|
||||||
|
connection for this purpose in order to avoid to send a request using
|
||||||
|
the reused connection which may bound to an old process.
|
||||||
|
|
||||||
|
This API returns response including ``data`` key. Its value is JSON
|
||||||
|
object, and it contains at least the following key:
|
||||||
|
|
||||||
|
configRevision
|
||||||
|
The configuration revision of the current nghttpx
|
||||||
|
|
||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
|||||||
@@ -38,9 +38,6 @@ Although zlib comes with Android NDK, it seems not to be a part of
|
|||||||
public API, so we have to built it for our own. That also provides us
|
public API, so we have to built it for our own. That also provides us
|
||||||
proper .pc file as a bonus.
|
proper .pc file as a bonus.
|
||||||
|
|
||||||
If SPDY support is required for nghttpx and h2load, build and install
|
|
||||||
spdylay as well.
|
|
||||||
|
|
||||||
Before running ``android-config`` and ``android-make``,
|
Before running ``android-config`` and ``android-make``,
|
||||||
``ANDROID_HOME`` environment variable must be set to point to the
|
``ANDROID_HOME`` environment variable must be set to point to the
|
||||||
correct path. Also add ``$ANDROID_HOME/toolchain/bin`` to ``PATH``:
|
correct path. Also add ``$ANDROID_HOME/toolchain/bin`` to ``PATH``:
|
||||||
@@ -146,34 +143,6 @@ To configure zlib, use the following script:
|
|||||||
|
|
||||||
And run ``make install`` to build and install.
|
And run ``make install`` to build and install.
|
||||||
|
|
||||||
To configure spdylay, use the following script:
|
|
||||||
|
|
||||||
.. code-block:: sh
|
|
||||||
|
|
||||||
#!/bin/sh -e
|
|
||||||
|
|
||||||
if [ -z "$ANDROID_HOME" ]; then
|
|
||||||
echo 'No $ANDROID_HOME specified.'
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
PREFIX=$ANDROID_HOME/usr/local
|
|
||||||
TOOLCHAIN=$ANDROID_HOME/toolchain
|
|
||||||
PATH=$TOOLCHAIN/bin:$PATH
|
|
||||||
|
|
||||||
./configure \
|
|
||||||
--disable-shared \
|
|
||||||
--host=arm-linux-androideabi \
|
|
||||||
--build=`dpkg-architecture -qDEB_BUILD_GNU_TYPE` \
|
|
||||||
--prefix=$PREFIX \
|
|
||||||
--without-libxml2 \
|
|
||||||
--disable-src \
|
|
||||||
--disable-examples \
|
|
||||||
CPPFLAGS="-I$PREFIX/include" \
|
|
||||||
PKG_CONFIG_LIBDIR="$PREFIX/lib/pkgconfig" \
|
|
||||||
LDFLAGS="-L$PREFIX/lib"
|
|
||||||
|
|
||||||
And run ``make install`` to build and install.
|
|
||||||
|
|
||||||
After prerequisite libraries are prepared, run ``android-config`` and
|
After prerequisite libraries are prepared, run ``android-config`` and
|
||||||
then ``android-make`` to compile nghttp2 source files.
|
then ``android-make`` to compile nghttp2 source files.
|
||||||
|
|
||||||
|
|||||||
@@ -229,12 +229,18 @@ Hot swapping
|
|||||||
nghttpx supports hot swapping using signals. The hot swapping in
|
nghttpx supports hot swapping using signals. The hot swapping in
|
||||||
nghttpx is multi step process. First send USR2 signal to nghttpx
|
nghttpx is multi step process. First send USR2 signal to nghttpx
|
||||||
process. It will do fork and execute new executable, using same
|
process. It will do fork and execute new executable, using same
|
||||||
command-line arguments and environment variables. At this point, both
|
command-line arguments and environment variables.
|
||||||
current and new processes can accept requests. To gracefully shutdown
|
|
||||||
current process, send QUIT signal to current nghttpx process. When
|
As of nghttpx version 1.20.0, that is all you have to do. The new
|
||||||
all existing frontend connections are done, the current process will
|
master process sends QUIT signal to the original process, when it is
|
||||||
exit. At this point, only new nghttpx process exists and serves
|
ready to serve requests, to shut it down gracefully.
|
||||||
incoming requests.
|
|
||||||
|
For earlier versions of nghttpx, you have to do one more thing. At
|
||||||
|
this point, both current and new processes can accept requests. To
|
||||||
|
gracefully shutdown current process, send QUIT signal to current
|
||||||
|
nghttpx process. When all existing frontend connections are done, the
|
||||||
|
current process will exit. At this point, only new nghttpx process
|
||||||
|
exists and serves incoming requests.
|
||||||
|
|
||||||
If you want to just reload configuration file without executing new
|
If you want to just reload configuration file without executing new
|
||||||
binary, send SIGHUP to nghttpx master process.
|
binary, send SIGHUP to nghttpx master process.
|
||||||
|
|||||||
33
fuzz/README.rst
Normal file
33
fuzz/README.rst
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
Fuzzer
|
||||||
|
======
|
||||||
|
|
||||||
|
This directory contains fuzzer target mainly written to integrate
|
||||||
|
nghttp2 into `oss-fuzz <https://github.com/google/oss-fuzz>`_.
|
||||||
|
|
||||||
|
fuzz_target.cc contains an entry point of fuzzer. corpus directory
|
||||||
|
contains initial data for fuzzer.
|
||||||
|
|
||||||
|
The file name of initial data under corpus is the lower-cased hex
|
||||||
|
string of SHA-256 hash of its own content.
|
||||||
|
|
||||||
|
corpus/h2spec contains input data which was recorded when we ran
|
||||||
|
`h2spec <https://github.com/summerwind/h2spec>`_ against nghttpd.
|
||||||
|
|
||||||
|
corpus/nghttp contains input data which was recorded when we ran
|
||||||
|
nghttp against nghttpd with some varying command line options of
|
||||||
|
nghttp.
|
||||||
|
|
||||||
|
|
||||||
|
To build fuzz_target.cc, make sure that libnghttp2 is built with
|
||||||
|
following compiler/linker flags:
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
CPPFLAGS="-fsanitize-coverage=edge -fsanitize=addres"
|
||||||
|
LDFLAGS="-fsanitize-coverage=edge -fsanitize=addres"
|
||||||
|
|
||||||
|
Then, fuzz_target.cc can be built using the following command:
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
$ clang++ -fsanitize-coverage=edge -fsanitize=address -I../lib/includes -std=c++11 fuzz_target.cc ../lib/.libs/libnghttp2.a /usr/lib/llvm-3.9/lib/libFuzzer.a -o nghttp2_fuzzer
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,2 @@
|
|||||||
|
INVALID CONNECTION PREFACE
|
||||||
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user