Tatsuhiro Tsujikawa
446124f378
nghttpx: Process request body
2021-08-21 18:34:08 +09:00
Tatsuhiro Tsujikawa
c45f2085d5
nghttpx: Fix veccnt assertion
2021-08-21 18:34:08 +09:00
Tatsuhiro Tsujikawa
3abf62b41a
nghttpx: Send stateless reset token in TP
2021-08-21 18:34:08 +09:00
Tatsuhiro Tsujikawa
9b2982510e
nghttpx: Send stateless reset
2021-08-21 18:34:08 +09:00
Tatsuhiro Tsujikawa
48bb1ebe01
nghttpx: Add configuration to enable ngtcp2 logging (no cmd-line opt yet)
2021-08-21 18:34:08 +09:00
Tatsuhiro Tsujikawa
fe4c6e4c56
nghttpx: Generate stateless reset secret
2021-08-21 18:34:08 +09:00
Tatsuhiro Tsujikawa
37bd9ffc48
nghttpx: Implement http_reset_stream and http_send_stop_sending
2021-08-21 18:34:08 +09:00
Tatsuhiro Tsujikawa
b0548b4944
nghttpx: Complete HTTP request and response
2021-08-21 18:34:08 +09:00
Tatsuhiro Tsujikawa
12425556c1
nghttpx: Extend Downstream stream_id to 64 bits
2021-08-21 18:34:07 +09:00
Tatsuhiro Tsujikawa
3ed2da562b
nghttpx: Add HTTP3 skeleton and minor SSL_CTX fix
2021-08-21 18:34:07 +09:00
Tatsuhiro Tsujikawa
354f46d8c5
nghttpx: Add QUIC timeouts
2021-08-21 18:34:07 +09:00
Tatsuhiro Tsujikawa
e70f0db83c
nghttpx: QUIC handshake now works
2021-08-21 18:34:07 +09:00
Tatsuhiro Tsujikawa
49b8c56fde
nghttpx: Use existing QUIC error object
2021-08-21 18:34:07 +09:00
Tatsuhiro Tsujikawa
940fdd5573
nghttpx: Read quic packet
2021-08-21 18:34:04 +09:00
Tatsuhiro Tsujikawa
ef53db201e
nghttpx: Create QUIC SSL_CTX
...
We choose an easier route to duplicate SSL_CTX for QUIC.
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
aeb0b0728d
nghttpx: Add QUICConnectionHandler and HTTP3Upstream skeleton
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
8b2746abf1
nghttpx: Add QUICListener
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
01da060496
nghttpx: Create quic server socket
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
20cbd269c4
Compile with the latest ngtcp2
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
7c2cd43dfa
Compile with the latest ngtcp2 and nghttp3
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
de5feff720
Compile with the latest nghttp3
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
7342de837d
Compile with the latest ngtcp2
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
e914b50d16
Compile with the latest ngtcp2
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
f79554f918
Count outgoing packets
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
213cc9c4b5
Enlarge receive buffer
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
05f3b8fa0f
Adopt ngtcp2_crypto_recv_crypto_data_cb
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
bc53624133
Do not specify max_udp_payload_size for now
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
5944d034da
Avoid std::ostringstream
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
df400feb61
make clang-format
2021-08-21 18:33:39 +09:00
Hajime Fujita
48e10c57da
h2load: Add qlog output support
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
1eb818b64c
QUIC UDP GSO
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
e584d9cd2e
Measure the number of UDP datagrams sent and received
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
09a2e50fc2
Support both h3 and h3-29 ALPN and their corresponding QUIC versions
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
35d8ef33ef
Compile with the latest ngtcp2
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
f1ff2af47a
Deal with 0 length HTTP data write case
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
d2d2c31ec7
Follow ngtcp2_conn_writev_stream specification change
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
95102c1c6c
Compile with the latest ngtcp2
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
fa8c16ae01
Compile with the latest ngtcp2 and nghttp3
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
7ca2a8213d
h2load: Enable --data for HTTP/3
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
1c8e5046e5
Compile with the latest ngtcp2
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
6b4be30c64
Cap --window-bits to 26 for QUIC
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
6ce952ad4a
Set X25519 as default
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
5ae62dd9d7
Cap --window-bits to 23 for QUIC
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
51987107a2
Compile with the latest ngtcp2
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
e4a8c4813c
Compile with the latest ngtcp2
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
3d708f7dc4
Compile with the latest ngtcp2
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
10ec8c9558
Compile with the latest ngtcp2
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
3900f758ea
QUIC needs termination without session
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
a3346fbad8
Compile with latest ngtcp2
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
813d5e1ddf
Compile with latest ngtcp2
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
acb661df72
Fix bug for platform which does not have SOCK_NONBLOCK
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
4bc7710de9
Fix compile error
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
b8c1f4f138
Compile with latest ngtcp2
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
387b67472c
Compile latest ngtcp2 crypto lib
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
b2c099bac6
Use ngtcp2_conn_handle_expiry
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
1acebb1cc4
draft-28
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
8d89a8dcb0
Assert ndatalen
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
a60a34331b
Revert "Ensure complete packet is written"
...
This reverts commit c19046b09f8e66713f0e067f986ed92d676eb6b6.
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
749015eb86
Ensure complete packet is written
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
4b45142e72
Fix compile error with the latest ngtcp2
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
2722119776
Handle stream limit increment
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
0b61e46f95
draft-25
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
5c0da486b9
Remove unused member function declaration
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
9701e5e6e4
Fix compile error
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
a93eb8b8f5
Optimize QUIC write
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
c591ab5e6f
Only count STREAM data as bytes_total
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
b3fbebed55
Use correct type
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
4621f88441
Follow ngtcp2 API update
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
747edb3a99
quic draft-24
2021-08-21 18:33:38 +09:00
Lucas Pardue
73fd20a608
Add SSLKEYLOGFILE support
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
78c2c33b9e
Compile with the latest ngtcp2
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
610add1f59
Send SNI
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
f7414700f4
Small adjustment of successful HTTP/3 error code
...
Non-zero successful error code is a bit annoying because ngtcp2 does
not know it. Enforcing successful application error code to 0 is a
lot simpler.
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
53a860a5bf
Simplify write_quic
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
1aae450303
Handle sending just fine
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
b3a2f8837c
Avoid setting 0 to repeat field
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
33d2a93294
Add missing acked_stream_data_offset callback
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
2da0db70de
Fix return value
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
ff7067f3a3
Compile with the latest ngtcp2 and ngtcp2_crypto_openssl
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
6b8b152444
Remove error handling which does not happen
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
3dbe3b3e7f
Follow ngtcp2 API changes and use libngtcp2_crypto_openssl
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
7aa4bff97b
quic: Support TLS_AES_128_CCM_SHA256
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
6002fac9f1
h2load: Add --tls13-ciphers option
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
c3eb7e1634
Handle preferred address
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
05a6ee2b49
Show ngtcp2 debug log with --verbose
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
94d76c042d
h2load: Add --groups option
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
23ccaa6191
Always call write_quic when timer expires
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
476e9d0a48
h3-22
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
7cd5ed6fc6
Handle Retry
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
750c23f319
quic: Configure settings with options
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
bb36df8b2e
h2load: Fix possible deadlock
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
9c748d20d5
[WIP] Add QUIC to h2load
2021-08-21 18:33:38 +09:00
Tatsuhiro Tsujikawa
80c9c705b8
Merge pull request #1607 from nghttp2/dnf
...
Add "dnf" (= "do not forward") parameter to backend option
2021-08-14 17:35:20 +09:00
Tatsuhiro Tsujikawa
138419d232
Add "dnf" (= "do not forward") parameter to backend option
2021-08-14 17:16:21 +09:00
lhuang04
c2d4a53b67
Fix prototype mismatch for function 'file_read_callback'
...
Summary:
The [data_flags](https://github.com/lhuang04/nghttp2/blob/master/src/HttpServer.cc#L1078 ) is defined as `uint32_t*` in definition, but delared as [int*](https://github.com/lhuang04/nghttp2/blob/master/src/HttpServer.h#L245 ) in the prototype.
```
stderr: error: no previous prototype for function 'file_read_callback' [-Werror,-Wmissing-prototypes]
ssize_t file_read_callback(nghttp2_session *session, int32_t stream_id,
^
```
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
2021-08-07 07:24:21 -07:00
Tatsuhiro Tsujikawa
29cbf8b83f
clang-format-12
2021-08-04 15:04:58 +09:00
Tatsuhiro Tsujikawa
fa16e66a6d
nghttpx: Fix max distance in weight group/address cycle comparison
2021-07-14 23:26:33 +09:00
Tatsuhiro Tsujikawa
40af31da4c
nghttpx: Set connect_blocker and live_check after shuffling addresses
2021-07-14 23:09:28 +09:00
Tatsuhiro Tsujikawa
43a47aa08b
Do not return HPE_USER from where it is prohibited
2021-05-13 13:59:44 +09:00
Tatsuhiro Tsujikawa
cef458c31c
Replace black-list with block-list
...
nghttpx --no-http2-cipher-black-list and
--client-no-http2-cipher-black-list are deprecated and replaced with
--no-http2-cipher-block-list and --client-no-http2-cipher-block-list
respectively.
2021-04-02 22:35:37 +09:00
Tatsuhiro Tsujikawa
617a5766a2
Replace master with main
2021-04-02 22:08:19 +09:00
Tatsuhiro Tsujikawa
f1d6733554
Initialize Config rps field
2021-03-10 13:45:20 +09:00
Tatsuhiro Tsujikawa
5f3bcb1f58
Add precious variables for libev and jemalloc and use JEMALLOC_CFLAGS
2021-03-06 22:32:17 +09:00
Tatsuhiro Tsujikawa
e406a2c15e
Update doc
2021-02-23 17:41:27 +09:00
Tatsuhiro Tsujikawa
6cdc13d6c6
h2load: Add --rps option
2021-02-23 16:40:17 +09:00
Tatsuhiro Tsujikawa
92944f7847
h2load: Allow unit in -D option
2021-02-23 15:31:54 +09:00
Tatsuhiro Tsujikawa
276792a812
Remove unnecessary function
...
on_stream_close is called after on_frame_not_send_callback with
success=false without this function.
2021-02-23 14:32:43 +09:00
Tatsuhiro Tsujikawa
2f2b211766
Add LIBTOOL_LDFLAGS configure variable
2021-02-21 21:32:48 +09:00
Tatsuhiro Tsujikawa
40679cf638
Merge pull request #1553 from nghttp2/nghttpx-fix-accesslog-method
...
nghttpx: Remove trailing white space after $method log variable
2021-02-08 23:02:19 +09:00
Tatsuhiro Tsujikawa
50a1121d81
nghttpx: Remove trailing white space after $method log variable
2021-02-08 22:22:05 +09:00
Jan Kundrát
5b9892a902
docs: asio: fix some typos
...
Really just a s/pusedo/pseudo/g and s/exluced/excluded/g.
2021-01-15 00:39:39 +01:00
Tatsuhiro Tsujikawa
d32e20bcaa
nghttpx: Make sure that Pool gets cleared when all buffers are returned
2020-12-16 23:27:58 +09:00
Tatsuhiro Tsujikawa
81fb015391
nghttpx: Choose ECDSA cert if compatible signature algorithm available
2020-12-13 23:40:43 +09:00
Tatsuhiro Tsujikawa
6787423edc
nghttpx: Add workaround to include ':' in backend pattern
2020-11-27 22:15:46 +09:00
Tatsuhiro Tsujikawa
da7959c2e8
nghttpx: Deal with the case when h2 backend is retired before it is initialized
2020-11-15 11:19:07 +09:00
Tatsuhiro Tsujikawa
4e3c61ef4d
nghttpx: Add accesslog variables to record request path without query
...
This commit the following variables to construct request line without
including query component:
* $method
* $path
* $path_without_query
* $protocol_version
2020-09-19 23:58:37 +09:00
Tatsuhiro Tsujikawa
7b4de401d2
nghttpx: Check worker wide blocker before creating new downstream connection
2020-09-19 23:22:14 +09:00
Tatsuhiro Tsujikawa
7df73a5d90
nghttpx: mrb_run was removed
2020-09-02 22:12:45 +09:00
Tatsuhiro Tsujikawa
d5550e946d
Amend f1d8547b29
...
Better handling of tls and early data buffer
2020-07-14 19:47:08 +09:00
Tatsuhiro Tsujikawa
62411f5a6e
nghttpx: Set client_handler to special frontend objects
2020-07-14 01:13:29 +09:00
Tatsuhiro Tsujikawa
e9465f0ee5
Revert "nghttpx: Fix ubsan error"
...
This reverts commit 14dfeee4ed
.
2020-07-14 01:13:29 +09:00
Tatsuhiro Tsujikawa
14dfeee4ed
nghttpx: Fix ubsan error
2020-07-14 00:12:07 +09:00
Tatsuhiro Tsujikawa
f1d8547b29
nghttpx: Fix stall when TLS follows after proxy protocol
...
This fixes that nghttpx stalls when TLS handshake and data follow
after proxy protocol header and no extra read notification is
triggered (e.g., just small 1 HTTP request).
2020-07-13 23:39:17 +09:00
Tatsuhiro Tsujikawa
abe80e371e
nghttpx: Fix logging integer
2020-06-10 20:56:33 +09:00
Tatsuhiro Tsujikawa
854e9fe395
nghttpx: Always call init_forwarded_for
...
Always call init_forwarded_for to get the default when source address
in PROXY protocol is ignored. This ensures that forwarded header
field has the same value as x-forwarded-for.
2020-04-18 17:16:45 +09:00
Tatsuhiro Tsujikawa
49cd8e6e73
nghttpx: Add PROXY-protocol v2 support
2020-04-18 17:16:30 +09:00
Jacky Tian
4922bb41d6
static_cast size parameter in StringRef constructor to size_t
2020-03-31 00:54:08 -07:00
Jacky Tian
aad8697575
Fix get_x509_serial for long serial numbers
2020-03-31 00:19:06 -07:00
Tatsuhiro Tsujikawa
5e13274b7c
Fix typo
2019-12-21 11:39:05 +09:00
Tatsuhiro Tsujikawa
e0d7f7de5e
h2load: Allow port in --connect-to
2019-12-21 11:39:05 +09:00
lucas
df575f968f
h2load: add --connect-to option
2019-12-21 11:39:05 +09:00
Richard Wolfert
29042f1c95
priority_spec::valid(): remove const qualifier from return value
...
gcc generates warning:
* type qualifiers ignored on function return type [-Wignored-qualifiers]
2019-10-29 11:28:26 +01:00
Tatsuhiro Tsujikawa
6f967c6ef3
Fix errors reported by coverity scan
2019-09-21 13:45:20 +09:00
Tatsuhiro Tsujikawa
fe8946ddc7
nghttpx: Fix bug that mruby is incorrectly shared between backends
...
Previously, mruby context is wrongly shared by multiple patterns if
the underlying SharedDownstreamAddr is shared by multiple
DownstreamAddrGroups. This commit fixes it.
2019-09-16 22:25:06 +09:00
Tatsuhiro Tsujikawa
f8933fe504
nghttpx: Reconnect h1 backend if it lost connection before sending headers
...
This is the second attempt. The first attempt was
8a59ce6d37
and it failed.
2019-09-07 18:20:24 +09:00
Tatsuhiro Tsujikawa
5080db84e2
Revert "nghttpx: Reconnect h1 backend if it lost connection before sending headers"
...
This reverts commit 8a59ce6d37
.
2019-09-06 22:01:03 +09:00
Tatsuhiro Tsujikawa
053c7ac588
nghttpx: Returns 408 if backend timed out before sending headers
2019-09-03 00:29:01 +09:00
Tatsuhiro Tsujikawa
8a59ce6d37
nghttpx: Reconnect h1 backend if it lost connection before sending headers
2019-09-03 00:28:21 +09:00
Tatsuhiro Tsujikawa
f2fde180cd
Remove redundant null check before delete
...
Reported in https://github.com/nghttp2/nghttp2/issues/1384
2019-08-19 22:27:32 +09:00
Tatsuhiro Tsujikawa
95efb3e19d
Don't read too greedily
2019-08-14 11:44:28 +09:00
Tatsuhiro Tsujikawa
319d5ab1c6
nghttpx: Fix request stall
...
Fix request stall if backend connection is reused and buffer is full.
2019-08-06 20:50:29 +09:00
Andrew Penkrat
4f7aedc9d2
cmake: Support building nghttpx with systemd
2019-07-29 13:55:05 +03:00
Tatsuhiro Tsujikawa
7a5908933e
Fix clang-8 warning
2019-06-22 17:44:16 +09:00
Tatsuhiro Tsujikawa
ee44313445
Fix FPE with default backend
2019-06-11 23:15:01 +09:00
Tatsuhiro Tsujikawa
abef9b90ef
Fix log-level is not set with cmd-line or configuration file
2019-06-11 23:13:43 +09:00
Tatsuhiro Tsujikawa
b7220f075c
cmake: Remove SPDY related files
2019-06-08 00:23:17 +09:00
Tatsuhiro Tsujikawa
77f1c872b1
nghttpx: Fix unchanged log level on configuration reload
...
Previously, if log-level is not mentioned in configuration file and
reload happens, the log level was not set to the default value NOTICE.
Instead, the log level stayed the same. This commit fixes this bug.
2019-06-05 21:17:23 +09:00
Tatsuhiro Tsujikawa
b0f5e5cc79
Implement daemon() using fork() for OSX
2019-05-30 23:22:44 +09:00
Tatsuhiro Tsujikawa
2e1975ddf6
clang-format-8
2019-05-18 10:28:35 +09:00
Tatsuhiro Tsujikawa
4fca2502d8
nghttpx: Ignore Content-Length and Transfer-Encoding in 1xx or 200 to CONNECT
...
A well known server sends content-length: 0 in 101 response. RFC 7230
says Content-Length or Transfer-Encoding in 200 response to CONNECT
request: https://tools.ietf.org/html/rfc7230#section-3.3.3
2019-05-17 22:58:26 +09:00