Tatsuhiro Tsujikawa
acb38b726f
nghttpx: Don't quote Forwarded params if it is not required
2016-01-19 22:43:56 +09:00
Tatsuhiro Tsujikawa
f44128774c
nghttpx: Update doc
2016-01-19 21:01:34 +09:00
Tatsuhiro Tsujikawa
933e0f40bb
h2load: Support UNIX domain socket
2016-01-19 19:24:15 +09:00
Tatsuhiro Tsujikawa
3ad9f9e730
nghttpx: Fix compiler warning without --with-mruby
2016-01-19 19:07:13 +09:00
Tatsuhiro Tsujikawa
a390bd4ce0
nghttpx: Fix compile error with --with-neverbleed
2016-01-19 19:04:24 +09:00
Tatsuhiro Tsujikawa
f3946ae314
nghttpx: Remove assignment of zero values
...
Because of zero initialization, these assignments are unnecessary.
2016-01-19 17:27:56 +09:00
Tatsuhiro Tsujikawa
2f9946327a
nghttpx: Fix bug that --listener-disable-timeout option is not used
2016-01-19 17:03:01 +09:00
Tatsuhiro Tsujikawa
0402481be4
nghttpx: Organize connection related configuration into struct
2016-01-19 16:56:12 +09:00
Tatsuhiro Tsujikawa
35feae3b0c
nghttpx: Group up logging related options
2016-01-18 17:26:27 +09:00
Tatsuhiro Tsujikawa
a053d10839
nghttpx: Move option handling code to separate function
2016-01-18 17:08:28 +09:00
Tatsuhiro Tsujikawa
16549bb276
nghttpx: Structured configurations for http and http2
2016-01-18 17:00:20 +09:00
Tatsuhiro Tsujikawa
f3e1dc7a4f
nghttpx: Structured TLS related configurations
2016-01-18 14:21:09 +09:00
Tatsuhiro Tsujikawa
b12af8c410
nghttpx: Refactor backend proxy configuration
2016-01-17 22:51:40 +09:00
Tatsuhiro Tsujikawa
f5b4fd23da
src: Fix compiler error on travis
2016-01-17 22:47:50 +09:00
Tatsuhiro Tsujikawa
ee43250015
nghttpx: Remove useless comment
2016-01-17 22:26:13 +09:00
Tatsuhiro Tsujikawa
9f0f5c60ad
ImmutableString: Remove std::unique_ptr<char[]> ctor overload
2016-01-17 22:25:10 +09:00
Tatsuhiro Tsujikawa
09de332028
ImmutableString: Less fields
2016-01-17 22:25:10 +09:00
Tatsuhiro Tsujikawa
3d5f5b6a28
nghttpx: Fix compiler warning
2016-01-17 18:27:25 +09:00
Tatsuhiro Tsujikawa
eb7b3295d1
ImmutableString, StringRef: Add empty() and operator[]
...
We won't add operator[] to StringRef. This is because it may be
undefined if pos == size(), and StringRef's base + len does not point
to the valid region. This solely depends on the given buffer, so we
cannot do anything to fix. For workaround, if we need this kind of
operator, we may add it under another name, like char_at(size_type).
2016-01-17 18:09:12 +09:00
Tatsuhiro Tsujikawa
5131b95c2f
ImmutableString: Ensure that c_str() returns non-nullptr if it is default constructed
2016-01-17 18:00:36 +09:00
Tatsuhiro Tsujikawa
ba543e3895
memchunk: Add noexcept
2016-01-17 17:16:20 +09:00
Tatsuhiro Tsujikawa
ef5d981ab1
nghttpx: Simplify
2016-01-17 17:04:16 +09:00
Tatsuhiro Tsujikawa
d5efab4993
src: Add inequality operator for StringRef
2016-01-17 16:42:19 +09:00
Tatsuhiro Tsujikawa
919e9eee63
nghttpx: It is enough to check "chunked" in the suffix
2016-01-17 16:34:56 +09:00
Tatsuhiro Tsujikawa
e255468bdf
nghttpx: Fix tests
2016-01-17 16:33:23 +09:00
Tatsuhiro Tsujikawa
39c0a71065
src: Add tests for ImmutableString and StringRef
2016-01-17 16:32:55 +09:00
Tatsuhiro Tsujikawa
7b2d4b6ae6
nghttpx: Optimize logging further
2016-01-17 15:04:09 +09:00
Tatsuhiro Tsujikawa
4f07db8bcb
src: Rename our new string classes
2016-01-17 11:33:45 +09:00
Tatsuhiro Tsujikawa
959d378f2a
nghttpx: Optimize accesslog write
2016-01-17 11:19:19 +09:00
Tatsuhiro Tsujikawa
506de55475
src: Less strlen
2016-01-17 01:29:52 +09:00
Tatsuhiro Tsujikawa
045578989c
src: Update doc
2016-01-17 01:21:58 +09:00
Tatsuhiro Tsujikawa
d16ff1f519
nghttpx: Use StringAdaptor for Config::server_name
2016-01-17 01:15:11 +09:00
Tatsuhiro Tsujikawa
2c7ed01f0c
nghttpx: Use std::string for Downstream::backend_tls_sni_name
2016-01-17 01:00:15 +09:00
Tatsuhiro Tsujikawa
34d5382d66
nghttpx: Use VString for DownstreamAddr::host and hostport to remember size
2016-01-17 00:52:41 +09:00
Tatsuhiro Tsujikawa
dbbf3a4a10
nghttpx: Refactor TLS hostname match
2016-01-16 23:54:21 +09:00
Tatsuhiro Tsujikawa
f25fd09bbb
nghttpx: Don't emit :authority if request dones not contain authority info
...
RFC 7540 says that proxy should not emit :authority when translating
HTTP/1 request in origin or asterisk form to HTTP/2. To keep this
semantics in tact, we should also refrain from emitting :authority if
it is missing (host header field is required in this case).
2016-01-16 21:12:51 +09:00
Tatsuhiro Tsujikawa
7be0217bc0
nghttpx: Simplify xff handling
2016-01-16 16:48:41 +09:00
Tatsuhiro Tsujikawa
b202e066fd
nghttpx: Don't allow certain characters in host and :scheme header field
...
For HTTP/2, we do this validation in libnghttp2. http-parser does
this partially, when it parses URI, but it does not do anything for
Host header field. libspdylay does not perform anything. So do some
additional validation for HTTP/1 and SPDY cases. integration tests
were also added to make sure they work.
2016-01-16 16:00:05 +09:00
Tatsuhiro Tsujikawa
74c77926a8
nghttpx: Refactor and simplify Downstream::rewrite_location_response_header
2016-01-16 12:49:18 +09:00
Tatsuhiro Tsujikawa
25570367b3
nghttpx: Document Forwarded related options
2016-01-16 11:58:02 +09:00
Tatsuhiro Tsujikawa
4c884da222
nghttpx: Reset config when Forwarded related option is used
2016-01-16 11:53:18 +09:00
Tatsuhiro Tsujikawa
41047aece0
nghttpx: Implement Forwarded in HTTP/2 backend
2016-01-16 11:32:36 +09:00
Tatsuhiro Tsujikawa
54f5ea9d6e
Update doc
2016-01-16 11:32:36 +09:00
Tatsuhiro Tsujikawa
d678c07ddf
nghttpx: Allow user to specify static obfuscated value via command-line
2016-01-16 11:32:26 +09:00
Tatsuhiro Tsujikawa
5c3f74b424
nghttpx: Add RFC 7239 Forwarded header field support
2016-01-16 11:32:14 +09:00
Tatsuhiro Tsujikawa
1550d709e0
nghttpx: Use std::mt19937 instead of std::random_device directly
2016-01-15 18:48:14 +09:00
Tatsuhiro Tsujikawa
3c7038dfe1
nghttpx: Simplify
...
We only change req_.upgrade_request once, so just using else is
suffice.
2016-01-15 00:22:11 +09:00
Tatsuhiro Tsujikawa
f8472f4709
nghttpx: Remove backend priority handling code
...
Currently, this does not do anything useful.
2016-01-15 00:17:40 +09:00
Tatsuhiro Tsujikawa
698f00596d
Update doc
2016-01-15 00:05:56 +09:00
Tatsuhiro Tsujikawa
5a8cf94361
nghttpx: Refactor Downstream::response_sent_bodylen_
2016-01-14 23:54:28 +09:00
Tatsuhiro Tsujikawa
3218c160be
nghttpx: Refactor Downstream::response_datalen_
2016-01-14 23:49:21 +09:00
Tatsuhiro Tsujikawa
fa31d0940c
nghttpx: Refactor Downstream::request_datalen_
2016-01-14 23:36:47 +09:00
Tatsuhiro Tsujikawa
e7e52b11ce
nghttpx: Refactor Downstream::response_bodylen_
2016-01-14 23:20:44 +09:00
Tatsuhiro Tsujikawa
bdef0e0b1a
nghttpx: Refactor Downstream::request_bodylen_
2016-01-14 23:14:58 +09:00
Tatsuhiro Tsujikawa
0a76b45eca
nghttpx: Fix bug that key_prev is not updated
2016-01-14 01:05:10 +09:00
Tatsuhiro Tsujikawa
6d6a00f1f5
nghttpx: Return assemble cookie on the fly
2016-01-14 01:05:10 +09:00
Tatsuhiro Tsujikawa
3b8889a2a1
nghttpx: Extract response related fields to Response struct
2016-01-14 01:05:10 +09:00
Tatsuhiro Tsujikawa
a7fd37ffdf
nghttpx: Remove FieldStore::set_last_{header,trailer}_value
...
Use FieldStore::append_last_{header,trailer}_value instead.
2016-01-14 01:04:53 +09:00
Tatsuhiro Tsujikawa
919f08eb38
nghttpx: Extract request related fields to Request struct
...
Header field related functions are now gathered into FieldStore class.
This commit only handles request. Subsequent commit will do the same
thing for response.
2016-01-14 01:04:32 +09:00
Vernon Tang
6fddefe252
shrpx_worker_process: worker_process_event_loop: Fix FD test.
...
This fixes a crash in nghttpx when running on IPv6 only.
2016-01-12 17:38:17 +00:00
Tatsuhiro Tsujikawa
fe8005327a
src: Make util::utos_with_unit and utos_with_funit names shorter
2016-01-11 18:12:31 +09:00
Tatsuhiro Tsujikawa
0697de4691
h2load: Improve readability of traffic numbers
2016-01-11 18:06:26 +09:00
Tatsuhiro Tsujikawa
6566ea7d6b
nghttpx: Update doc
2016-01-11 17:36:47 +09:00
Tatsuhiro Tsujikawa
b64fc3ac49
nghttpd: Add --no-content-length option to omit content-length in response
2016-01-07 22:51:47 +09:00
Tatsuhiro Tsujikawa
027256d0b1
h2load: Distribute MAX_SAMPLES across workers
2016-01-07 22:41:37 +09:00
Tatsuhiro Tsujikawa
425c794f89
h2load: Rename MAX_STATS as MAX_SAMPLES
2016-01-07 22:21:39 +09:00
Tatsuhiro Tsujikawa
acac5ec6ea
h2load: Remove "auto" for -m option
...
Because http/1.1 support, default "auto" behaviour of -m option is not
desirable, since it is used as HTTP pipelining, and it is not used in
practice.
2016-01-06 23:16:53 +09:00
Tatsuhiro Tsujikawa
13bd566eb7
h2load: Remove RequestStat ctor
2016-01-06 23:10:46 +09:00
Tatsuhiro Tsujikawa
a52920cec0
h2load: Perform Sampling for client as well
2016-01-06 23:03:37 +09:00
Tatsuhiro Tsujikawa
9cbb8174bb
h2load: Refactor systematic sampling method
2016-01-06 22:43:09 +09:00
Tatsuhiro Tsujikawa
23ac0429be
h2load: Show progress in rate mode
2016-01-06 00:04:14 +09:00
Tatsuhiro Tsujikawa
7ed26afe75
h2load: Delete Client when it finished
2016-01-06 00:04:14 +09:00
Tatsuhiro Tsujikawa
60bbb5cae0
h2load: Perform sampling for request timings to reduce memory consumption
2016-01-06 00:04:14 +09:00
Tatsuhiro Tsujikawa
2f50bc1b3c
nghttpx: Take into account of trailers when applying max_header_fields
2016-01-05 16:47:44 +09:00
Tatsuhiro Tsujikawa
848f8fbe54
nghttpx: Don't apply max_header_fields and header_field_buffer limit to response
...
We modeled max_header_fields and header_field_buffer limit from Apache
configuration directives. In Apache, they are only applied to request
header fields, while we applied both request and response. Since
nghttpx is used as reverse proxy and backend server is relatively
"trusted", this commit removes the application to response header
fields.
2016-01-05 16:44:44 +09:00
Tatsuhiro Tsujikawa
dd4d549dc1
asio: Rename http2::get_io_services() as http2::io_services()
...
The naming convention in asio lib does not use get_something.
2015-12-25 21:06:25 +09:00
Tatsuhiro Tsujikawa
486dba8d8a
nghttpx: Strict validation for header fields given in configuration
2015-12-25 20:57:24 +09:00
ayanamist
5ec6066fdd
header value should not be inp_strlower
...
http header keys are case-insensitive, but header values are case-sensitive, so it should not be changed.
2015-12-25 11:03:55 +08:00
Tatsuhiro Tsujikawa
8919c8c139
Check initgroups with AC_CHECK_DECLS for cygwin
2015-12-24 21:15:46 +09:00
Tatsuhiro Tsujikawa
5de2c7a8c1
Detect availability of initgroups
2015-12-23 14:21:31 +09:00
Tatsuhiro Tsujikawa
7c5ef0613d
asio: Add configurable connect/read timeout for client
...
This commit includes backward incompatible change, since we change
private field in public API class.
2015-12-23 00:08:55 +09:00
Tatsuhiro Tsujikawa
1ee1122d40
asio: Add configurable tls handshake/read timeout to server
2015-12-23 00:08:16 +09:00
Tatsuhiro Tsujikawa
09bd9c94a3
asio: client: Should call shutdown_socket() on read error
2015-12-22 00:40:22 +09:00
Tatsuhiro Tsujikawa
6c1a76af6e
asio: Use std::move for remote_endpoint assignment
2015-12-20 14:00:58 +09:00
Tatsuhiro Tsujikawa
dd93b29397
clang-format
2015-12-20 12:48:39 +09:00
Tatsuhiro Tsujikawa
e71948d611
Merge branch 'master' of https://github.com/apohl79/nghttp2 into apohl79-master
2015-12-19 23:33:33 +09:00
Tatsuhiro Tsujikawa
5a2d75551d
h2load: Remove "(client)" from per-client req/s stat for simplicity
2015-12-19 22:56:10 +09:00
Andreas Pohl
9f2d064d7c
libnghttp2_asio: Optimized remote endpoint interface to const ref where possible
2015-12-19 14:08:15 +01:00
Tatsuhiro Tsujikawa
2d2188e77b
src: Add 451 status code
...
https://datatracker.ietf.org/doc/draft-ietf-httpbis-legally-restricted-status/
2015-12-19 18:35:01 +09:00
Andreas Pohl
a30dad4f5e
libnghttp2_asio: Added access to a requests remote endpoint
2015-12-16 18:38:21 +01:00
Tatsuhiro Tsujikawa
ef7d6e8a0c
nghttpx: Loose HTTP Upgrade condition
2015-12-16 00:38:30 +09:00
Tatsuhiro Tsujikawa
71012fe83a
nghttpx: Add constexpr
2015-12-15 22:47:05 +09:00
Tatsuhiro Tsujikawa
248a64f0b2
Compile with OpenSSL 1.1.0-pre1
2015-12-14 21:12:25 +09:00
Andreas Pohl
a4392d4a7f
libnghttp2_asio: Make io_service accessors const
2015-12-09 23:11:40 +01:00
Andreas Pohl
924fef1f32
libnghttp2_asio: Added io_service accessors
...
To allow the asio wrapper to work with boost.fiber it is required
to access the underlying io_service objects.
2015-12-08 15:54:22 +01:00
Tatsuhiro Tsujikawa
7ca9ead36b
nghttp: Update doc for default value of -M
2015-12-04 23:08:58 +09:00
Sunpoet Po-Chuan Hsieh
90b5a5856b
Fix build when OpenSSL 1.0.2 is not available
2015-12-04 17:38:04 +08:00
Tatsuhiro Tsujikawa
a151a44caf
Set max number of outgoing concurrent streams to 100 by default
...
Instead of using nonsensical large value for max outgoing concurrent
streams, use more sensible value, 100.
2015-12-03 23:45:03 +09:00
Tatsuhiro Tsujikawa
6beaf4d9f3
h2load: Add req/s min, max, mean and sd for clients
2015-12-01 23:54:21 +09:00
Tatsuhiro Tsujikawa
d1d1c83e56
h2load: Fix broken connection times
2015-12-01 22:29:30 +09:00