Tatsuhiro Tsujikawa
c6ef1c02b9
Switch to clang-format-3.6
2015-11-13 00:53:29 +09:00
Tatsuhiro Tsujikawa
c711a80411
src: Fix typo
...
Apply typo fixes to the original source files in the previous commit
which were done in generated text.
2015-11-09 21:43:25 +09:00
Tatsuhiro Tsujikawa
dbbed64146
nghttpx: Fix bug that causes connection failure with backend proxy URI
...
This is a regression when we introduced SSL/TLS session resumption in
HTTP/2 backend. Before the introduction of session resumption,
conn_.tls.ssl is always nullptr when connection is made to proxy. But
we have to keep conn_.tls.ssl to enable session resumption, so our
code breaks when it is reused. This commit fixes this issue.
See GH-421
2015-11-09 21:35:53 +09:00
Tatsuhiro Tsujikawa
9b18e47671
nghttpx: Use --backend-tls-sni-field to verify certificate hostname
2015-11-08 00:22:44 +09:00
Tatsuhiro Tsujikawa
b89f1f5869
asio: ALPN support
2015-11-07 22:53:25 +09:00
Tatsuhiro Tsujikawa
eaefce3792
nghttp: Record request method to output it in har correctly
2015-11-07 16:13:06 +09:00
Tatsuhiro Tsujikawa
558934cee5
src: Use nghttp2_session_upgrade2
2015-11-07 16:13:06 +09:00
Tatsuhiro Tsujikawa
6958d0b55d
nghttp: Use method given in -H with ":method" in HTTP Upgrade
2015-11-07 11:14:28 +09:00
Tatsuhiro Tsujikawa
7755c2827c
nghttpx: Reserve headers vector
2015-11-05 23:47:22 +09:00
Tatsuhiro Tsujikawa
ac41946533
nghttpx: Use NGHTTP2_NV_FLAG_NO_COPY_NAME and NGHTTP2_NV_FLAG_NO_COPY_VALUE
...
For both HTTP/2 frontend and backend.
Also adds http2::stringify_status to optimize status code
serialization.
2015-11-05 23:47:11 +09:00
Tatsuhiro Tsujikawa
cb73fa1d3b
h2load: Return SSL_TLSEXT_ERR_NOACK if there is protocol list overlap in NPN
2015-11-05 21:26:38 +09:00
Tatsuhiro Tsujikawa
0dc7fee713
h2load: Print "space savings" to measure header compression efficiency
2015-11-04 01:04:56 +09:00
Tatsuhiro Tsujikawa
be0d0e2995
Rename nghttp2_session_request_allowed as nghttp2_session_check_request_allowed
2015-10-30 22:48:27 +09:00
Tatsuhiro Tsujikawa
1e7f0d833e
nghttpd: Don't show read error if mime types file is not set by user manually
2015-10-29 23:08:52 +09:00
Tatsuhiro Tsujikawa
1c37abc0dd
Add nghttp2_session_request_allowed() API function
...
This function is useful for the client application to know that there
is a chance that request can be sent. If this function returns 0,
there is zero chance to make a request.
This commit also set error_code passed to
nghttp2_on_stream_close_callback to NGHTTP2_REFUSED_STREAM if request
is not sent.
2015-10-29 22:53:30 +09:00
Tatsuhiro Tsujikawa
ad395f0603
h2load: Handle request submission failure
...
If request submission is failed, make all remaining requests for that
client fail.
2015-10-29 22:31:03 +09:00
Tatsuhiro Tsujikawa
e3878b619f
h2load: Update doc
2015-10-29 21:16:47 +09:00
Tatsuhiro Tsujikawa
3641b123f3
h2load: Stream error should be counted toward `errored`
2015-10-29 21:15:22 +09:00
Tatsuhiro Tsujikawa
f29ccc9c20
nghttpd: Read /etc/mime.types to set content-type header field
...
User can change file name using --mime-types-file option.
2015-10-29 00:21:36 +09:00
Tatsuhiro Tsujikawa
ecb4a208fb
nghttpx: Use ev_feed_event to signal write for HTTP backend
...
It seems that using ev_feed_event to signal write operation is much
faster than starting watcher. This is probably due to the fact that
we don't need to wait in event loop. The same thing cannot be done in
HTTP/2 frontend, since this will raise write operation for each stream
HEADER/DATA write, which leads to very small packets, hurting
performance. Interestingly, HTTP/1 frontend also suffers the same
performance hit.
2015-10-28 23:26:41 +09:00
Tatsuhiro Tsujikawa
d9f73c36c3
nghttpx: Log :authority as $http_host if available
2015-10-28 23:12:16 +09:00
Lucas Pardue
76df93fdf4
h2load: do not overwrite protocol value
2015-10-28 11:04:09 +00:00
Tatsuhiro Tsujikawa
1aa8e8cd9f
nghttpx: Simplify add_header
2015-10-28 02:57:31 +09:00
Tatsuhiro Tsujikawa
b051ddec2a
h2load: Show application protocol with OpenSSL < 1.0.2
...
This commit also fixes the problem that application protocol is not
shown if cleartext spdy is used.
2015-10-28 02:40:04 +09:00
Tatsuhiro Tsujikawa
6b0bde6c31
Update doc so that we can use hyperlink to referred options
2015-10-25 17:10:41 +09:00
Tatsuhiro Tsujikawa
9231a4ba57
nghttpx: Replace old script file options with --mruby-file
2015-10-25 17:05:15 +09:00
Tatsuhiro Tsujikawa
0b2c139eaa
clang-format-3.5
2015-10-25 17:04:54 +09:00
Tatsuhiro Tsujikawa
b832caccd4
Fix typo
2015-10-25 11:31:55 +09:00
Tatsuhiro Tsujikawa
907798707c
nghttpx: Fix compile error with Android NDK
2015-10-24 19:31:09 +09:00
Tatsuhiro Tsujikawa
d1b8f60776
nghttp: Allow multiple -c option occurrence, and take min and last value
2015-10-24 18:11:47 +09:00
Tatsuhiro Tsujikawa
7eddf1975e
src: Fix Memchunks move ctor
2015-10-23 01:03:43 +09:00
Tatsuhiro Tsujikawa
d3475f5fe2
nghttp: Remove redundant std::move
2015-10-23 00:17:00 +09:00
Tatsuhiro Tsujikawa
ce74a30990
Use -fvisibility=hidden for internal functions
...
This will improve performance since we can avoid indirect call of
internal functions. The downside is we now require libnghttp2 static
library to run unit tests.
2015-10-23 00:08:15 +09:00
Tatsuhiro Tsujikawa
fad1def7b9
Merge branch 'nghttpx-tls-dyn-rec-config' of https://github.com/LPardue/nghttp2 into LPardue-nghttpx-tls-dyn-rec-config
2015-10-22 23:50:07 +09:00
Lucas Pardue
dcc9aaaa24
Add TLS dynamic record size behaviour command line options
2015-10-22 14:07:18 +00:00
Tatsuhiro Tsujikawa
20ac0e3e48
src: Print out exception type
2015-10-22 01:34:01 +09:00
Tatsuhiro Tsujikawa
e3c95265a4
nghttpd: Fix leak when server failed to listen to given port
2015-10-21 22:27:15 +09:00
Tatsuhiro Tsujikawa
f0bf2233d2
Remove the word "experimental" since HTTP/2 has been finalized
2015-10-20 00:19:49 +09:00
Tatsuhiro Tsujikawa
48edbc8687
nghttpx: Reduce default timeouts for read sockets to 1m
2015-10-18 00:15:58 +09:00
Tatsuhiro Tsujikawa
b9a9e3a596
src: s/custom/unknown/
2015-10-18 00:10:08 +09:00
Tatsuhiro Tsujikawa
eff3dfd50b
src: Move exception handling code to one function
2015-10-17 23:34:05 +09:00
Tatsuhiro Tsujikawa
11cb4ea214
h2load: Don't DOS our server!
2015-10-17 12:04:06 +09:00
Tatsuhiro Tsujikawa
5594e3df25
src: Handle exception in main
2015-10-17 11:52:33 +09:00
Tatsuhiro Tsujikawa
85bc696c38
nghttpx: Add error handling for strdup and sigaction
2015-10-16 22:33:48 +09:00
Tatsuhiro Tsujikawa
54bf225692
clang-format-3.5
2015-10-15 21:42:11 +09:00
Tatsuhiro Tsujikawa
e8c608a4d9
nghttpx: Fix bug that PUT is replaced with POST
2015-10-15 00:57:07 +09:00
Tatsuhiro Tsujikawa
338b4ba739
nghttpx: Don't use units to display fastopen default
2015-10-14 23:45:56 +09:00
Tatsuhiro Tsujikawa
41710bfc7e
nghttpx: Add description about error message when TLS protocols do not overlap
2015-10-14 23:23:43 +09:00
Tatsuhiro Tsujikawa
0e87d464a2
clang-format
2015-10-14 23:23:34 +09:00
Tatsuhiro Tsujikawa
ed1e84fc0a
nghttpx: Improve libssl error logging
2015-10-14 22:32:47 +09:00
Tatsuhiro Tsujikawa
1ca64788eb
h2load: Use duration syntax for timeouts
2015-10-13 23:37:28 +09:00
Tatsuhiro Tsujikawa
47f1d17ad3
h2load: Support subsecond rate period
...
This change adds subsecond rate period support to h2load. Now
--rate-period option only accepts integer, but it can be followed by
units. Currently, h, m, s, and ms are supported, which are hours,
minutes, seconds, and milliseconds respectively. The underlying
functionality and usecase are already extensively used in nghttpx.
2015-10-13 23:35:33 +09:00
Tatsuhiro Tsujikawa
ac317321fc
h2load: Format doc
2015-10-10 11:16:36 +09:00
Tatsuhiro Tsujikawa
ca9e7c2c2d
h2load: Start thread execution using conditional variable
...
When thread is created, we pause them. After all threads are created,
master thread sends signal to all worker threads and let them start to
benchmark. This will make thread start almost at the same time since
we can avoid thread creation overhead. It also exclude thread
creating time from benchmark time. We also simplified thread creation
routine, and now we always use dedicted worker thread to issue
requests even if -t1.
2015-10-10 11:14:55 +09:00
Tatsuhiro Tsujikawa
4030060db8
h2load: Simplify rate mode
...
This change simplifies rate mode as proposed idea as plan B in GH-382.
In this change, we removed -C option. Instead, -c option is used to
specify the number of connections to be made, and it is now required
argument if more than 1 clients are required (this is usually the
case). The number of requests made per connection is calculated
simply by -n / -c.
-n option is handled specially when --timing-script-file is used. If
-n is used with --timing-script, it specifies the number of requests
-each client will make rather than the total number of requests h2load
-will perform across clients. This handling applies to rate mode too.
We also clarified the sematics about distribution of rate among the
threads.
2015-10-10 11:06:44 +09:00
Tatsuhiro Tsujikawa
f1eb7638d1
nghttpx: Change mruby script handling
...
This commit changes nghttpx's mruby script handling. Previously we
have 2 options to specify the mruby script file to be run on request
and on response. Now they are merged into 1 option, namely
--mruby-file. It now must return object. On request, the object's
on_req(env) method is invoked with env object. Similarly, on
response, the object's on_resp(env) method is invoked. The
specification of Env object has not changed.
2015-10-08 23:32:15 +09:00
Tatsuhiro Tsujikawa
c71c357fa6
src: Call OpenSSL_add_all_algorithms to attempt to set up cpuid explicitly
...
See GH-377
2015-10-08 22:50:51 +09:00
Tatsuhiro Tsujikawa
2f4395da22
Merge branch 'h2load-rateperiod' of https://github.com/LPardue/nghttp2 into LPardue-h2load-rateperiod
2015-10-07 22:37:04 +09:00
Lucas Pardue
afa14d36a8
h2load: Add option for user-definable rate period
2015-10-07 11:22:32 +00:00
Peeyush Aggarwal
349f3e2c7b
Added support for RFC 7413 (TCP Fast Open) on nghttpx proxy listening connections.
...
Fixed code as per PR comments
2015-10-05 13:40:45 -07:00
Tatsuhiro Tsujikawa
0155c9115a
nghttpx: Fix so that --padding option works again
2015-10-04 10:36:20 +09:00
Tatsuhiro Tsujikawa
49573e0aa2
Cleanup
2015-10-03 19:14:41 +09:00
Tatsuhiro Tsujikawa
e95b39d534
nghttpx: Fix sent bodylen logging
2015-10-03 19:14:26 +09:00
Tatsuhiro Tsujikawa
ccbaaa1e14
nghttpx: Fix freeze in large transfer
2015-10-03 19:00:16 +09:00
Tatsuhiro Tsujikawa
777e1ee2c5
nghttpx: Use send_data_callback for higher throughput
2015-10-03 17:56:37 +09:00
Tatsuhiro Tsujikawa
da89f9c150
nghttpx: Refactor client handler write
...
Move write buffer to Upstream objects
2015-10-03 11:09:42 +09:00
Tatsuhiro Tsujikawa
fe79b6d118
nghttpx: Avoid last buffer copy when HTTP/1.1 is used
2015-10-01 23:34:17 +09:00
Tatsuhiro Tsujikawa
2aa8d9642c
nghttpx: Fix crash on http2/client proxy mode
2015-09-30 23:45:43 +09:00
Tatsuhiro Tsujikawa
f150f9aec4
Fix compile error without BoringSSL
2015-09-29 23:45:13 +09:00
Tatsuhiro Tsujikawa
22a89ff7a6
Fix compile error and warning with gcc
2015-09-29 23:38:26 +09:00
Tatsuhiro Tsujikawa
f0d2c9f94b
Compile with BoringSSL
...
Compile with BoringSSL except for neverbleed and libnghttp2_asio. The
former uses ENGINE and RSA_METHOD, and they are quite different
between OpenSSL and BoringSSL. The latter uses boost::asio, which
calls OpenSSL functions deleted in BoringSSL.
2015-09-29 23:38:17 +09:00
Tatsuhiro Tsujikawa
49ef571ecf
nghttpx: Stop watchers in ConnectionHandler dtor
2015-09-29 00:45:31 +09:00
Tatsuhiro Tsujikawa
75ff04f87a
nghttpx: Don't stop default loop of worker process on graceful shutdown
...
To keep ipc channel being read from worker process, default loop
should not be stopped. To join all worker threads, now we use
dedicated thread to do this. When all worker threads are joined,
ev_async_send sends message to default loop, and it is finally
stopped.
2015-09-29 00:40:33 +09:00
Tatsuhiro Tsujikawa
3fca142e5f
nghttpx: Exit immediately if IPC channel read failed on worker process
2015-09-29 00:08:46 +09:00
Tatsuhiro Tsujikawa
a28aee058f
nghttpx: Don't need to trap SIGTERM and SIGINT signals
2015-09-29 00:07:29 +09:00
Tatsuhiro Tsujikawa
55075516c9
h2load: Reuse SSL/TLS session
2015-09-28 23:59:42 +09:00
Tatsuhiro Tsujikawa
ff87bf7584
h2load: Fix compile error
2015-09-28 23:57:58 +09:00
Tatsuhiro Tsujikawa
252df2d22c
h2load: Reconnect server on connection: close
2015-09-28 23:50:44 +09:00
Tatsuhiro Tsujikawa
4e2ff875dc
h2load: Don't exit in the case of no ALPN protocol overlap
2015-09-28 22:48:43 +09:00
Tatsuhiro Tsujikawa
3fafbfe1ed
Fix gcc build
2015-09-27 00:51:32 +09:00
Tatsuhiro Tsujikawa
8acf9a2802
nghttpx: Trie based routing
2015-09-26 22:19:10 +09:00
Tatsuhiro Tsujikawa
566b0476d7
nghttpx: Enable neverbleed for client private key; don't run nb without TLS
2015-09-26 21:28:46 +09:00
Tatsuhiro Tsujikawa
044385ab6e
Add neverbleed support
...
neverbleed is disabled by default. To enable it, use
--with-neverbleed configure option.
2015-09-26 19:01:31 +09:00
Tatsuhiro Tsujikawa
c749ae0cac
Add doc
2015-09-26 18:54:38 +09:00
Tatsuhiro Tsujikawa
6680d8b792
nghttpx: Call setsid after executing new binary
2015-09-25 00:55:08 +09:00
Tatsuhiro Tsujikawa
0b32df94a5
nghttpx: Log when worker process exits
2015-09-25 00:11:35 +09:00
Tatsuhiro Tsujikawa
c44587a70c
nghttpx: Use _Exit when exiting from child process
2015-09-24 23:57:24 +09:00
Tatsuhiro Tsujikawa
938fa9a1e2
nghttpx: Fix compile error with --disable-threads
2015-09-24 23:57:06 +09:00
Tatsuhiro Tsujikawa
389a96483a
nghttpx: Fix improper signal handling
2015-09-24 23:43:24 +09:00
Tatsuhiro Tsujikawa
bff59e09dc
src: Robust make_array implementation
...
This is meant to be used for ints, but unfortunately std::forward is
not constexpr in C++11.
2015-09-24 23:43:07 +09:00
Tatsuhiro Tsujikawa
a54062bd5e
nghttpx: Fix output glitch
2015-09-24 00:11:02 +09:00
Tatsuhiro Tsujikawa
2269b99b4f
Merge branch 'unix-tcp-nodelay' of https://github.com/rraptorr/nghttp2 into rraptorr-unix-tcp-nodelay
2015-09-23 19:54:50 +09:00
Janusz Dziemidowicz
84f96a2fd5
Do not try to set TCP_NODELAY when frontend is an UNIX socket
...
This silences warning log that otherwise spams logs on every accepted
connection.
2015-09-23 12:22:34 +02:00
Tatsuhiro Tsujikawa
28fe3e7e89
More warning flags for --enable-werror
2015-09-23 16:49:45 +09:00
Tatsuhiro Tsujikawa
2be6a94d70
nghttpx: Show textual signal description when worker process exited
2015-09-22 21:21:40 +09:00
Tatsuhiro Tsujikawa
e77f9d95d3
nghttpx: Set CLOEXEC for ipc fds
2015-09-22 19:52:35 +09:00
Tatsuhiro Tsujikawa
87a38bdf8d
nghttpx: Chown UNIX domain socket to user specified as --user
2015-09-22 18:34:03 +09:00
Tatsuhiro Tsujikawa
03bb58006b
nghttpx: Extract several chown() usages into 1 function
2015-09-22 18:32:40 +09:00
Tatsuhiro Tsujikawa
ab824d1230
nghttpx: Add missing sys/wait.h
2015-09-19 19:50:29 +09:00
Tatsuhiro Tsujikawa
da9e535c7a
nghttpx: Log worker thread creating in NOTICE level
2015-09-18 23:35:25 +09:00
Tatsuhiro Tsujikawa
dbbc7296f5
strdup is not required here
2015-09-18 23:28:27 +09:00
Tatsuhiro Tsujikawa
ce1b11e3a0
nghttpx: Split monolithic one process into control and worker processes
...
The control process handles signals, reads configuration, reads
private keys, and bind port (which may be privileged one). It never
drop privileges, so that it can execute new binary with the same
privilege. It forks worker process. The worker process handles all
incoming connections. It drops privilege.
2015-09-18 23:28:26 +09:00
Tatsuhiro Tsujikawa
b57b0db5bf
h2load: Fix npn defualt list
2015-09-18 23:03:36 +09:00
Tatsuhiro Tsujikawa
604732b650
Merge branch 'h2load-http1_a' of https://github.com/LPardue/nghttp2 into LPardue-h2load-http1_a
2015-09-18 22:53:29 +09:00
Lucas Pardue
ec47dfb9b8
Initial HTTP/1.1 capability. Add npn-list option to h2load. Make NPN/ALPN more runtime dependent
2015-09-17 14:49:27 +00:00
Tatsuhiro Tsujikawa
1c2fcc2a55
nghttpx: Handle SSL/TLS data following PROXY protocol line
2015-09-17 22:26:49 +09:00
Tatsuhiro Tsujikawa
c6785abd1f
nghttp: Check req is null, found by coverity
2015-09-16 22:18:09 +09:00
Tatsuhiro Tsujikawa
ee4732a676
nghttp: Show error if HEADERS frame cannot be sent for whatever reason
2015-09-16 00:41:55 +09:00
Tatsuhiro Tsujikawa
4aaf111c58
nghttpx: Fix assertion failure on TLS handshake
2015-09-15 23:24:30 +09:00
Tatsuhiro Tsujikawa
d22573086f
nghttpx: Add x-http2-push header field for pushed resource
...
Fixes GH-352
2015-09-14 00:28:19 +09:00
Tatsuhiro Tsujikawa
1148584526
nghttpx: Reserve room for required header fields for PUSH_PROMISE
2015-09-14 00:26:50 +09:00
Tatsuhiro Tsujikawa
33601f1a51
nghttpx: Fix compile error with --disable-threads
2015-09-13 00:42:59 +09:00
Tatsuhiro Tsujikawa
57aee184ca
Update doc
2015-09-12 18:33:07 +09:00
Tatsuhiro Tsujikawa
0d8c8ca033
h2load: Record TTFB on first byte of response body, rather than first socket read
2015-09-12 11:18:54 +09:00
Tatsuhiro Tsujikawa
5ea90ba6bd
nghttpx: Fix crash with signal QUIT if mruby is not initialized
2015-09-12 02:40:55 +09:00
Tatsuhiro Tsujikawa
d0f96da2c0
src: Cleanup
2015-09-12 02:10:07 +09:00
Tatsuhiro Tsujikawa
f086b7b67e
nghttpx: Fix busy loop
2015-09-12 01:22:40 +09:00
Tatsuhiro Tsujikawa
02adaac368
nghttpx: Write h1 header into downstream buffer directly
2015-09-11 23:49:47 +09:00
Tatsuhiro Tsujikawa
753f6d4a3e
src: Fix compiler warning
2015-09-09 21:01:13 +09:00
Tatsuhiro Tsujikawa
aba2dbddc2
nghttpx: Don't allow partial PROXY protocol line
2015-09-09 00:21:54 +09:00
Tatsuhiro Tsujikawa
7d481db248
Merge branch 'nghttpx-proxyprotocol'
2015-09-07 23:52:39 +09:00
Tatsuhiro Tsujikawa
4f52f60b3c
src: Inline some single character categorization functions
2015-09-07 23:28:31 +09:00
Tatsuhiro Tsujikawa
3ce1c1d39f
nghttpx: Add date header field to error_reply and send_reply
2015-09-07 23:11:23 +09:00
Tatsuhiro Tsujikawa
21a3edfc60
nghttpx: Use 's' for param of Response::return
2015-09-07 23:00:01 +09:00
Tatsuhiro Tsujikawa
026ab797eb
src: util::numeric_host: Use inet_pton instead of getaddrinfo
2015-09-07 22:40:37 +09:00
Tatsuhiro Tsujikawa
79945c0c45
nghttpx: Robust PROXY protocol implementation
2015-09-07 22:37:25 +09:00
Tatsuhiro Tsujikawa
f8c1da7f3c
nghttpx: Add --accept-proxy-protocol usage to help message
2015-09-06 23:27:07 +09:00
Tatsuhiro Tsujikawa
a1bb48770c
nghttpx: Add tests for PROXY protocol handling
2015-09-06 23:11:07 +09:00
Tatsuhiro Tsujikawa
d05b77b36c
nghttpx: More logging for PROXY protocol handling
2015-09-06 21:44:45 +09:00
Tatsuhiro Tsujikawa
ce53bd239e
nghttpx: Implement PROXY protocol version 1
...
Use --accept-proxy-protocol to enable PROXY protocol handling
2015-09-06 21:30:19 +09:00
Tatsuhiro Tsujikawa
39287314d3
nghttpx: Fix missing `break`
2015-09-06 18:34:10 +09:00
Tatsuhiro Tsujikawa
c30d252f94
nghttpx: Show warning if certain feature is not compiled in
2015-09-06 16:59:57 +09:00
Tatsuhiro Tsujikawa
1b63e6d478
nghttpx: Call request phase hook for pushed resource as well
2015-09-06 15:21:36 +09:00
Tatsuhiro Tsujikawa
28defbfb4a
nghttpx: Allow link header server push for HTTP/2 backend as well
2015-09-06 15:12:20 +09:00
Tatsuhiro Tsujikawa
1df682140c
nghttpx: Don't do mruby push with --no-server-push option
2015-09-06 00:06:48 +09:00
Tatsuhiro Tsujikawa
ef1595672c
nghttpx: Add Request#push in mruby scripting
...
Refactor Http2Upstream so that we can share code between link header
field based push and mruby push.
2015-09-06 00:05:07 +09:00
Tatsuhiro Tsujikawa
77958eab46
Merge branch 'master' into nghttpx-mruby
2015-09-05 19:04:04 +09:00
Tatsuhiro Tsujikawa
8f41accf41
nghttpx: Don't initiate push if client disabled push
2015-09-05 19:02:55 +09:00
Tatsuhiro Tsujikawa
e19d5efced
nghttpx: Allow absolute URI in Link header field for push
2015-09-05 19:01:02 +09:00
Tatsuhiro Tsujikawa
69c3e2114a
Again fix mruby build properly; pass CC, CXX and LD to build_config.rb
2015-09-05 18:22:46 +09:00
Tatsuhiro Tsujikawa
d076d54f67
nghttpx: Don't add mruby related CPPFLAGS and LDFLAGS if it is disabled
...
Setting unused -L really makes libtool get angry
2015-09-05 18:03:05 +09:00
Tatsuhiro Tsujikawa
aba7e9e7f9
Add mruby as submodule; disable mruby by default for now
2015-09-05 17:49:10 +09:00
Tatsuhiro Tsujikawa
4ac7152f94
nghttpx: Fix build failure without mruby
2015-09-05 01:32:26 +09:00
Tatsuhiro Tsujikawa
b4709b9e8c
nghttpx: Fix crash without mruby script
2015-09-05 01:20:32 +09:00
Tatsuhiro Tsujikawa
21e1af2ae7
nghttpx: Delete replaced header fields
2015-09-05 01:18:18 +09:00
Tatsuhiro Tsujikawa
226a09b04a
nghttpx: Use gc arena save/restore when creating headers hash
2015-09-05 01:14:17 +09:00
Tatsuhiro Tsujikawa
587f37a597
nghttpx: Remove unused includes
2015-09-05 01:12:51 +09:00
Tatsuhiro Tsujikawa
97f488a5c7
nghttpx: Add Env.phase method
2015-09-05 01:11:20 +09:00
Tatsuhiro Tsujikawa
45e0d42c51
nghttpx: Check allowed operations per phase
2015-09-05 01:07:29 +09:00
Tatsuhiro Tsujikawa
bddc4a0a04
nghttpx: Rewrite API; introduce Env object
2015-09-05 00:53:42 +09:00
Tatsuhiro Tsujikawa
a9338f1c0e
nghttpx: Fix hang when error page is sent on response phase hook error
2015-09-04 22:34:40 +09:00
Tatsuhiro Tsujikawa
4ad00200a2
Merge branch 'master' into nghttpx-mruby
2015-09-04 22:22:06 +09:00
Tatsuhiro Tsujikawa
6b38f7e0d2
nghttpx: Fix crash with multi workers and QUIT signal
2015-09-04 22:21:10 +09:00
Tatsuhiro Tsujikawa
d8ca0a8d47
nghttpx: Add clear_headers and add_header methods to Request and Response
2015-09-04 02:53:02 +09:00
Tatsuhiro Tsujikawa
9e685a2734
nghttpx: Various test failures
2015-09-04 02:47:25 +09:00
Tatsuhiro Tsujikawa
d722a09581
nghttpx: Rename mruby script options
2015-09-04 01:19:57 +09:00
Tatsuhiro Tsujikawa
5967667e9e
nghttpx: Allow empty path assignment in mruby code
2015-09-04 01:00:27 +09:00
Tatsuhiro Tsujikawa
d044c58558
nghttpx: Detect mruby presence and guard mruby related code with ifdef
2015-09-04 00:54:41 +09:00
Tatsuhiro Tsujikawa
200217d8ea
nghttpx: Store empty string to path for server-wide OPTIONS request
...
This change is required to show path attribute to mruby script. It is
desirable to construct URI from parts. Just checking method and path
is "*" is awkward.
2015-09-04 00:14:09 +09:00
Tatsuhiro Tsujikawa
02bb2c3e83
nghttpx: Create authority from host or authority-form for CONNECT request
2015-09-03 23:36:49 +09:00
Tatsuhiro Tsujikawa
ad65121496
nghttpx: Fix assertion error because of empty scheme
2015-09-03 22:52:33 +09:00
Tatsuhiro Tsujikawa
3235b88253
nghttpx: Fix assertion error because of empty scheme
2015-09-03 22:51:24 +09:00
Tatsuhiro Tsujikawa
5e3ab6da5a
nghttpx: Perhaps this looks right, but not sure
2015-09-03 22:44:41 +09:00
Tatsuhiro Tsujikawa
6f9c9f8518
nghttpx: Fix assertion failure when response was commited early
2015-09-03 22:41:51 +09:00
Tatsuhiro Tsujikawa
65f2b16132
nghttpx: More freedom for custom response headers
2015-09-03 22:29:16 +09:00
Tatsuhiro Tsujikawa
05a761b628
nghttpx: Add Request.remote_addr which returns client remote address
2015-09-03 02:02:28 +09:00
Tatsuhiro Tsujikawa
14f5240d8f
nghttpx: Update doc
2015-09-03 01:37:47 +09:00
Tatsuhiro Tsujikawa
baadec5ef4
nghttpx: Add response mruby hook
2015-09-03 01:33:52 +09:00
Tatsuhiro Tsujikawa
d20229d9b9
nghttpx: Handle block is not passed
2015-09-03 00:43:42 +09:00
Tatsuhiro Tsujikawa
e06af02573
nghttpx: Add Response mruby object
2015-09-03 00:40:14 +09:00
Tatsuhiro Tsujikawa
5cd34920b7
nghttpx: Add Request class accessors
2015-09-02 23:22:33 +09:00
Tatsuhiro Tsujikawa
e436caf0bb
nghttpx: Don't forward request if response was commited in mruby hook
2015-09-02 23:22:26 +09:00
Tatsuhiro Tsujikawa
f0d41a5ac2
nghttpx: Handle nil given to request.set_header as value
2015-09-02 22:41:48 +09:00
Tatsuhiro Tsujikawa
068529586d
nghttpx: Split up request class definition to dedicated files
2015-09-02 22:38:57 +09:00
Tatsuhiro Tsujikawa
45cdb10c46
nghttpx: Use ruby block to run request hook
2015-09-02 22:25:04 +09:00
Tatsuhiro Tsujikawa
2170d958d5
nghttpx: Return copied string for safety
2015-09-02 21:14:49 +09:00
Tatsuhiro Tsujikawa
9d78691936
nghttpx: Fix copy-and-paste bug
2015-09-02 21:14:20 +09:00
Tatsuhiro Tsujikawa
1508c50a45
nghttpx: Add basic infrastructure for mruby support
2015-09-02 02:45:15 +09:00
Tatsuhiro Tsujikawa
e7bc269e97
Merge branch 'master' into LPardue-issue-339
2015-09-02 02:35:36 +09:00
Tatsuhiro Tsujikawa
e2557059e5
h2load: Fix crash with --timing-script option
2015-09-02 02:34:32 +09:00
Tatsuhiro Tsujikawa
0c4e26fd24
Merge branch 'issue-339' of https://github.com/LPardue/nghttp2 into LPardue-issue-339
2015-09-02 02:24:10 +09:00
Lucas Pardue
3002674bac
h2load: Improve checking for timing script imput, prevent false positive in certain situations
2015-09-01 17:15:41 +00:00
Tatsuhiro Tsujikawa
e1f7643c92
nghttpx: Fix memory leak
2015-09-02 02:07:29 +09:00
Tatsuhiro Tsujikawa
d70eb14ce0
nghttpx: Drop connection before TLS finish if h2 requirement is not fulfilled
2015-08-31 23:30:40 +09:00
Tatsuhiro Tsujikawa
36d562927f
nghttpx: Use nghttp2::ssl::DEFAULT_CIPHER_LIST for backend TLS connection
2015-08-23 23:03:29 +09:00
Tatsuhiro Tsujikawa
4a99853021
nghttpd: Fix crash without SSL/TLS
2015-08-21 22:50:15 +09:00
Tatsuhiro Tsujikawa
4b4a0f7492
nghttpd: GOAWAY if SSL/TLS requirements for HTTP/2 are not met
2015-08-20 21:21:56 +09:00
Tatsuhiro Tsujikawa
1006caf8e9
Merge branch 'master' of https://github.com/thinred/nghttp2 into thinred-master
2015-08-20 19:11:07 +09:00
Tatsuhiro Tsujikawa
780a0381ba
h2load: Exit if --timing-script and -r option is used together
2015-08-20 19:07:03 +09:00
Tatsuhiro Tsujikawa
2423b21c71
Merge branch 'issue-332' of https://github.com/LPardue/nghttp2 into LPardue-issue-332
2015-08-20 18:53:10 +09:00
Lucas Pardue
08bf8a8f1a
Move input file validation. Timing script auto nreqs scale correctly with nclients.
2015-08-19 15:23:43 +00:00
Tatsuhiro Tsujikawa
1c12606e70
nghttpx: Don't allow blacked listed cipher suites for HTTP/2 connection
2015-08-19 23:42:43 +09:00
Tatsuhiro Tsujikawa
836b1de0d5
h2load: Remove trailing white spaces
2015-08-19 21:19:42 +09:00
Tatsuhiro Tsujikawa
12cecaa030
h2load: Remove trailing spaces and left conflict marker
2015-08-19 00:32:11 +09:00
Lucas Pardue
cd4758227d
Add Timing-script and base URI support
2015-08-18 15:16:50 +00:00
Tatsuhiro Tsujikawa
9da6c88d25
h2load: Use ev_timer_init
2015-08-18 21:34:33 +09:00
Tatsuhiro Tsujikawa
04aaaa3821
h2load: Remove trailing white spaces
2015-08-18 21:32:47 +09:00
Nora
727ba4906c
h2load adding timeout options
2015-08-18 01:52:22 -04:00
Tatsuhiro Tsujikawa
627d04fe6b
nghttpd: Return date header field for 304
2015-08-17 23:49:01 +09:00
Tatsuhiro Tsujikawa
165cab7a29
nghttpd: Support HEAD request
2015-08-17 23:47:35 +09:00
Tatsuhiro Tsujikawa
8ce8b2af46
src: Remove unused Memchunk::shrink
2015-08-15 00:57:58 +09:00
Tatsuhiro Tsujikawa
b37834c584
h2load: Use default Config values to show help
2015-08-14 23:22:26 +09:00
Tatsuhiro Tsujikawa
d197d115dc
h2load: Use floating point duration cast
2015-08-14 22:44:14 +09:00
nshoemaker
e1621584fa
Fixing -r > -n check for when -n is not specified.
2015-08-13 05:09:40 -07:00
Tomasz Buchert
97566ce4e3
nghttpx: make early copy of stderr
2015-08-13 11:01:37 +02:00
Tomasz Buchert
900dcf4ced
nghttpx: remove Android-specific code
2015-08-12 20:17:03 +02:00
Tomasz Buchert
06a0f3480e
nghttpx: better handle /dev/stderr and /dev/stdout
2015-08-12 20:16:57 +02:00
Tatsuhiro Tsujikawa
473311269d
nghttpx: Drop connection if client TLS handshake packet is too large
2015-08-13 01:24:59 +09:00
Tatsuhiro Tsujikawa
b8f05c89bd
nghttpx: App data in SSL is Connection, not ClientHandler
2015-08-13 00:42:59 +09:00
Tatsuhiro Tsujikawa
e91a576179
nghttpx: Rewrite TLS async handshake using memchunk buffers
2015-08-13 00:42:59 +09:00
Tatsuhiro Tsujikawa
2277cc771a
Merge branch 'openssl_no_ec' of https://github.com/yuki-kodama/nghttp2 into yuki-kodama-openssl_no_ec
2015-08-13 00:32:15 +09:00
Tatsuhiro Tsujikawa
f8c30d0229
nghttpx: Fix heap-use-after-free
2015-08-12 21:14:18 +09:00
yuuki-kodama
53b5ffa103
Guard ecdh use with !OPENSSL_NO_EC @asio_server_tls_context.cc
2015-08-12 15:32:54 +09:00
Tatsuhiro Tsujikawa
b384b76f66
nghttpx: Fix hmac_keylen should be 16 for aes-128-cbc
2015-08-12 00:38:07 +09:00
Tatsuhiro Tsujikawa
b406d2da9e
h2load: Stop timeout_watcher in Worker dtor
2015-08-11 23:51:08 +09:00
Tatsuhiro Tsujikawa
dd97b53554
h2load: Fix division by zero if -r > -n
2015-08-11 23:49:34 +09:00
Tatsuhiro Tsujikawa
0f7e84bb62
h2load: Always initialize timeout_watcher
2015-08-11 23:44:22 +09:00
Tatsuhiro Tsujikawa
81add96b1e
src: Fix bug in get_uint64
2015-08-11 23:42:32 +09:00
Tatsuhiro Tsujikawa
020e66b9da
nghttpx: Start read watcher after handshake
2015-08-11 23:14:48 +09:00
Tatsuhiro Tsujikawa
d2a63a88a0
nghttpx: Fix stall if read buffer has app data when handshake finished
2015-08-11 22:37:15 +09:00
Tatsuhiro Tsujikawa
8410f684fb
nghttpx: Drop connection if client hello is too large
2015-08-10 00:29:43 +09:00
Tatsuhiro Tsujikawa
ff44e211ed
nghttpx: Fix tls handshake bug
...
This fixes 2 things:
1. potential busy loop
2. disabling ticket is not working after resumption
2015-08-09 18:33:49 +09:00
Tatsuhiro Tsujikawa
2e7cee0faa
h2load: Code cleanup
2015-08-09 01:05:15 +09:00
Tatsuhiro Tsujikawa
50eac7bdf0
h2load: Fix -r does not work without -C option
2015-08-09 00:24:17 +09:00
Tatsuhiro Tsujikawa
846da5fb3f
h2load: Update doc
2015-08-08 23:44:47 +09:00
Tatsuhiro Tsujikawa
3e53cd189c
clang-format-3.5
2015-08-08 23:36:02 +09:00
Tatsuhiro Tsujikawa
0bbff5b738
nghttpx: Continue if push was failed
2015-07-31 21:25:43 +09:00
Tatsuhiro Tsujikawa
a152c6346d
Fix build error with Android NDK
2015-07-30 22:57:25 +09:00
Tatsuhiro Tsujikawa
c379b46a26
Remove monotonic_clock replacement macro for gcc-4.6
2015-07-29 21:19:33 +09:00
Tatsuhiro Tsujikawa
6446660113
nghttpx: Make record size timeout more durable to high load situation
2015-07-29 20:57:11 +09:00
Tatsuhiro Tsujikawa
d0a37d59a5
nghttpx: Disable TLS session ticket if ticket key is not available
2015-07-29 20:38:49 +09:00
Tatsuhiro Tsujikawa
a73cfd5f7b
nghttpx: Add reference to manual section for session resumption
2015-07-29 00:00:43 +09:00
Tatsuhiro Tsujikawa
a1288a5826
nghttpx: Rename --tls-ticket-cipher as --tls-ticket-key-cipher
2015-07-28 23:49:37 +09:00
Tatsuhiro Tsujikawa
80d96590c5
nghttpx: Update doc
2015-07-28 23:43:32 +09:00
Tatsuhiro Tsujikawa
6ad332b801
nghttpx: Call disconnect() when memcached connection cannot be made
2015-07-28 21:19:27 +09:00
Tatsuhiro Tsujikawa
f1b163a32c
nghttpx: Log notice level when TLS ticket key was retrieved from memcached
2015-07-28 02:19:14 +09:00
Tatsuhiro Tsujikawa
4d7be08585
nghttpx: Do some macro dance for IOV_MAX
2015-07-28 01:26:34 +09:00
Tatsuhiro Tsujikawa
a6fdca730d
nghttpx: Add options to set maximum retry and failure when getting ticket keys
2015-07-28 01:17:29 +09:00
Tatsuhiro Tsujikawa
4949dd4888
nghttpx: Add --tls-ticket-key-memcached-interval option
2015-07-28 01:02:33 +09:00
Tatsuhiro Tsujikawa
2f2a300e83
nghttpx: Add TLS ticket key sharing among nghttpx instances using memcached
2015-07-28 00:54:44 +09:00
Tatsuhiro Tsujikawa
a4a9cfd650
nghttpx: Change session cache key prefix
2015-07-27 21:18:12 +09:00
Tatsuhiro Tsujikawa
bb228c27de
Merge branch 'master' into memcached
...
Conflicts:
src/shrpx_ssl.cc
2015-07-27 21:16:02 +09:00
Tatsuhiro Tsujikawa
7152e0f6b8
nghttpx: Fix bug that decrypt only key is not considered
2015-07-27 21:13:02 +09:00
Tatsuhiro Tsujikawa
72cfdbc0fa
nghttpx: Fix compile error on travis (again)
2015-07-27 02:28:36 +09:00
Tatsuhiro Tsujikawa
f472e6ff48
nghttpx: Fix compile error on travis
2015-07-27 02:22:27 +09:00
Tatsuhiro Tsujikawa
1708d2e69e
nghttpx: Add doc
2015-07-27 02:14:52 +09:00
Tatsuhiro Tsujikawa
e3cdfd12ea
nghttpx: Use std::array for TicketKey
2015-07-27 02:12:07 +09:00
Tatsuhiro Tsujikawa
cd25c6846e
nghttpx: Create struct Address which holds struct sockaddr_union and length
2015-07-27 01:41:10 +09:00
Tatsuhiro Tsujikawa
efcd43a367
nghttpx: Don't enable read timer while connecting to HTTP/1 server
2015-07-27 01:18:52 +09:00
Tatsuhiro Tsujikawa
90b4b48c7e
nghttpx: Add shared session cache using memcached
2015-07-26 23:33:06 +09:00