Tatsuhiro Tsujikawa
fc32ec1b34
[WIP] Add QUIC to h2load
2020-11-29 18:10:04 +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
Tatsuhiro Tsujikawa
0288093caf
Fix llhttp_get_error_pos usage
...
It returns NULL if return value is HPE_OK.
2019-04-21 00:07:11 +09:00
Tatsuhiro Tsujikawa
c64d2573dc
Replace http-parser with llhttp
...
llhttp does not include URL parser. We extracted URL parser code from
http-parser and put it under third-party/url-parser.
llhttp bd3d224eb8cdc92c6fc8f508d7bbe0ba266e8e92
2019-04-20 18:42:30 +09:00
Tatsuhiro Tsujikawa
f028cc4392
clang-format
2019-04-18 23:37:48 +09:00
Adam Gołębiowski
cbba1ebf8f
asio: support boost-1.70
...
In boost 1.70, deprecated get_io_context() has finally been removed.
Introduce GET_IO_SERVICE macro that based on boost version uses
old get_io_service() interface (boost < 1.70), or get_executor().context()
for boost 1.70+.
Commit based idea seen in monero-project/monero@17769db946
2019-04-18 12:35:54 +02:00
Tatsuhiro Tsujikawa
a35059e3f1
nghttpx: Fix bug that altered authority and path affect backend selection
...
Fix bug that altered authority and path by per-pattern mruby script
affect backend selection on retry.
2019-04-16 22:18:30 +09:00
Tatsuhiro Tsujikawa
5a30fafdda
Merge branch 'nghttpx-fix-chunked-request-stall'
2019-04-16 00:26:18 +09:00
Tatsuhiro Tsujikawa
2cff8b43cf
nghttpx: Fix bug that chunked request stalls
2019-04-15 23:58:30 +09:00
Tatsuhiro Tsujikawa
be96654d56
nghttpx: Don't log authorization request header field value with -LINFO
2019-04-15 22:59:26 +09:00
Tatsuhiro Tsujikawa
ec519f22dc
Merge pull request #1270 from baitisj/master
...
Fix for compilation against modern LibreSSL
2019-03-13 20:52:50 +09:00
Tatsuhiro Tsujikawa
371bc3a8f7
clang-format
2019-03-08 00:19:34 +09:00
Tatsuhiro Tsujikawa
f5feb16ef4
Merge pull request #1295 from bratkartoffel/fix-compile-boringssl
...
Fix compilation with boringssl
2019-02-20 00:13:00 +09:00
Don
2591960e2f
Explicitly set install location when building shared libs
2019-02-06 10:26:30 -08:00
Tatsuhiro Tsujikawa
d93842db3e
nghttpx: Fix backend stall if header and request body are sent in 2 packets
2019-01-23 17:57:12 +09:00
Tatsuhiro Tsujikawa
8dc2b263ba
nghttpx: Use std::priority_queue
2019-01-22 00:01:17 +09:00
Tatsuhiro Tsujikawa
1ff9de4c87
nghttpx: Backend address selection with weight
2019-01-21 22:23:19 +09:00
Simon Frankenberger
34482ed4df
Fix compilation with boringssl
2019-01-18 20:12:57 +01:00
Tatsuhiro Tsujikawa
ab2aa5672b
Fix test failure
...
Now http_parser_parse_url returns nonzero if empty URI is given.
2019-01-17 23:16:49 +09:00
Tatsuhiro Tsujikawa
e9c9838cdc
nghttpx: Pool h1 backend connection per address
...
Pool HTTP/1.1 backend connection per address and reuse it only when
the next round robin index refers to this address. Previously if
there is a pooled connection, there is no round robin selection.
2019-01-14 22:20:58 +09:00
Tatsuhiro Tsujikawa
803d4ba948
Merge branch 'nghttpx-randomize-roundrobin-order'
2019-01-14 22:17:12 +09:00
Tatsuhiro Tsujikawa
732245e562
make clang-format
2019-01-12 00:11:31 +09:00
Tatsuhiro Tsujikawa
fdcdb21c38
nghttpx: Randomize backend address round robin order per thread
2019-01-11 22:36:45 +09:00
Tatsuhiro Tsujikawa
11d0533cfc
nghttpx: Ensure that cert serial does not exceed 20 bytes
2019-01-05 10:03:44 +09:00
Josh Braegger
5b2efc0a12
Fix getting long serial numbers for openssl < 1.1
...
From https://www.ietf.org/rfc/rfc5280.txt
> As noted in Section 4.1.2.2, serial numbers can be expected to
> contain long integers. Certificate users MUST be able to handle
> serialNumber values up to 20 octets in length. Conforming CAs MUST
> NOT use serialNumber values longer than 20 octets.
Without this, nghttpx will fatal.
jbraeg$ openssl x509 -in ~/test_certs/client.crt -serial -noout
serial=E0CFDFC7CEA10DF8AAF715C37FAEB410
jbraeg$ curl -k --key ~/test_certs/client.key --cert ~/test_certs/client.crt https://192.168.98.100:3000/ ; echo
curl: (56) Unexpected EOF
...
Assertion failed: n == b.size() (shrpx_tls.cc: get_x509_serial: 2051)
2019-01-03T20:25:21.289Z 1 1 f84316ae NOTICE (shrpx_log.cc:895) Worker process: [9] exited abnormally with status 0x06; exit status 0; signal Aborted(6)
2019-01-03T20:25:21.290Z 1 1 f84316ae NOTICE (shrpx.cc:4311) Shutdown momentarily
2019-01-03 13:20:29 -08:00
Tatsuhiro Tsujikawa
124c7848c0
nghttpx: Add missing return
2018-12-11 22:52:34 +09:00
Tatsuhiro Tsujikawa
f3f40840b3
nghttpx: Fix broken trailing slash handling
...
nghttpx allows a pattern with trailing slash to match a request path
without it. Previously, under certain pattern registration, this does
not work.
2018-12-09 17:07:28 +09:00
Jeff 'Raid' Baitis
2c1570595e
Fix for compilation against modern LibreSSL
2018-12-02 13:30:42 -08:00
Tatsuhiro Tsujikawa
302abf1b46
h2load: Fix compile error with gcc
2018-11-23 14:39:51 +09:00
Tatsuhiro Tsujikawa
089a03be42
h2load: Write log file with write(2)
2018-11-23 13:08:38 +09:00
dawg
d1b3a83f59
h2load: add an option to write per-request logs
2018-11-23 12:11:00 +09:00
Pedro Santos
6800d317e7
added access to the number of the current server port
2018-11-23 10:56:21 +09:00
Tatsuhiro Tsujikawa
f51e696e4a
asio: Add stop() to listen_and_serve doc
2018-11-18 17:30:35 +09:00
Tatsuhiro Tsujikawa
a433b132fc
Merge pull request #1260 from nghttp2/h2load-non-final-response
...
h2load: Handle HTTP/1 non-final response
2018-11-15 17:32:15 +09:00
Tatsuhiro Tsujikawa
6cad1b243b
nghttpx: Write mruby send_info early
2018-11-15 10:17:47 +09:00
Tatsuhiro Tsujikawa
3c393dca58
nghttpx: Fix assertion failure on mruby send_info with HTTP/1 frontend
2018-11-15 10:17:41 +09:00
Tatsuhiro Tsujikawa
172924457f
h2load: Handle HTTP/1 non-final response
2018-11-15 10:13:19 +09:00
Tatsuhiro Tsujikawa
dcbe0c690f
nghttpx: Simplify move ctor and operator
2018-11-02 15:40:53 +09:00
Tatsuhiro Tsujikawa
2996c28456
nghttpx: Cleanup
2018-11-02 15:16:36 +09:00
Tatsuhiro Tsujikawa
42e8ceb656
nghttpx: Convert API status code to enum class
2018-11-02 14:14:48 +09:00
Tatsuhiro Tsujikawa
1daf9ce8b7
nghttpx: Convert WorkerEventType to enum class
2018-11-02 14:14:48 +09:00
Tatsuhiro Tsujikawa
d68edf56c0
nghttpx: Convert MemcachedStatusCode to enum class
2018-11-02 14:14:48 +09:00
Tatsuhiro Tsujikawa
0c4e9fef29
nghttpx: Convert memcached op to enum class
2018-11-02 14:14:48 +09:00
Tatsuhiro Tsujikawa
571404c6e8
nghttpx: Convert MemcachedParseState to enum class
2018-11-02 14:14:48 +09:00
Tatsuhiro Tsujikawa
4d562b773b
nghttpx: Convert LogFragmentType to enum class
2018-11-02 14:14:48 +09:00
Tatsuhiro Tsujikawa
e62258713e
nghttpx: Convert connection check status to enum class
2018-11-02 14:14:48 +09:00
Tatsuhiro Tsujikawa
4bd075defd
nghttpx: Convert Http2Session state to enum class
2018-11-02 14:14:48 +09:00
Tatsuhiro Tsujikawa
b46a324943
nghttpx: Convert FreelistZone to enum class
2018-10-17 14:19:58 +09:00
Tatsuhiro Tsujikawa
4bd44b9cdf
nghttpx: Convert dispatch state to enum class
2018-10-17 14:19:58 +09:00
Tatsuhiro Tsujikawa
1b42110d4f
nghttpx: Make Downstream state enum class
2018-10-17 14:19:58 +09:00
Tatsuhiro Tsujikawa
0735ec55f3
nghttpx: Convert shrpx_connect_proto to enum class
2018-10-17 14:19:58 +09:00
Tatsuhiro Tsujikawa
00554779e1
nghttpx: Convert DNSResolverStatus to enum class
2018-10-17 14:19:58 +09:00
Tatsuhiro Tsujikawa
0963f38935
nghttpx: Convert SerialEventType to enum class
2018-10-17 14:19:58 +09:00
Tatsuhiro Tsujikawa
1abfa3ca5f
nghttpx: Make TLS handshake state enum class
2018-10-17 08:52:27 +09:00
Tatsuhiro Tsujikawa
f2159bc2c1
nghttpx: Convert UpstreamAltMode to enum class
2018-10-17 08:38:55 +09:00
Tatsuhiro Tsujikawa
b0eb68ee9e
nghttpx: Convert shrpx_forwarded_node_type to enum class
2018-10-16 23:10:17 +09:00
Tatsuhiro Tsujikawa
e7b7b037f6
nghttpx: Convert shrpx_cookie_secure to enum class
2018-10-16 23:06:59 +09:00
Tatsuhiro Tsujikawa
5e4f434fd8
nghttpx: Convert shrpx_session_affinity to enum class
2018-10-16 23:03:17 +09:00
Tatsuhiro Tsujikawa
20ea964f2f
nghttpx: Convert shrpx_proto to enum class
2018-10-16 22:59:34 +09:00
Tatsuhiro Tsujikawa
d105619bc3
src: Remove extra braces if possible
2018-10-15 23:46:33 +09:00
Tatsuhiro Tsujikawa
ec5729b1fa
Use std::make_unique
2018-10-15 23:02:44 +09:00
Tatsuhiro Tsujikawa
46576178a3
Don't send Transfer-Encoding to pre-HTTP/1.1 clients
2018-10-14 22:57:54 +09:00
Tatsuhiro Tsujikawa
5e925f873e
Update doc
2018-10-14 22:57:11 +09:00
Tatsuhiro Tsujikawa
153531d4d0
nghttpx: Use the same type as standard stream operator<<
2018-10-07 22:19:00 +09:00