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
bb4ab7e333
integration: Robust process termination
2015-09-24 23:43:24 +09:00
Tatsuhiro Tsujikawa
25db23e3c8
integration: Workaround flaky test around signal
2015-09-24 00:11:14 +09:00
Tatsuhiro Tsujikawa
79945c0c45
nghttpx: Robust PROXY protocol implementation
2015-09-07 22:37:25 +09:00
Tatsuhiro Tsujikawa
a1bb48770c
nghttpx: Add tests for PROXY protocol handling
2015-09-06 23:11:07 +09:00
Tatsuhiro Tsujikawa
be77b47ab5
integration: Add ruby scripts to EXTRA_DIST
2015-09-05 19:10:55 +09:00
Tatsuhiro Tsujikawa
d348ea3384
integration: Fix test failures
2015-09-05 01:24:43 +09:00
Tatsuhiro Tsujikawa
2222a898a1
integration: Add mruby tests
2015-09-04 02:52:19 +09:00
Tatsuhiro Tsujikawa
891134eba9
Define it and itprep recursive target if AM_EXTRA_RECURSIVE_TARGETS is defined
2015-08-23 23:04:19 +09:00
Tatsuhiro Tsujikawa
b78662e506
integration: Fix errors related to host-rewrite
2015-08-09 01:23:58 +09:00
Tatsuhiro Tsujikawa
b0b792e735
integration: Add tests for x-forwarded-proto header field
2015-06-16 21:31:47 +09:00
Tatsuhiro Tsujikawa
41dd5f6897
nghttpx: Tokenize request method
...
We share the same method value with http-parser. This commit also
returns 501 for unknown request method on HTTP/2 and SPDY frontend.
2015-06-09 23:33:14 +09:00
Tatsuhiro Tsujikawa
f9c60d5e9d
nghttpx: Return 501 if invalid method is received on h1 frontend
2015-06-09 22:08:49 +09:00
Tatsuhiro Tsujikawa
59e6272ba4
integration: Add WebSocket upgrade test
2015-05-26 23:28:45 +09:00
Tatsuhiro Tsujikawa
1c06cfd29f
integration: Use our own copy of golang spdy package
...
Official golang spdy package is done. We made a copy of it until we
drop spdy support.
2015-05-23 00:01:45 +09:00
Tatsuhiro Tsujikawa
64b1aae567
integration: Fix TestH2H1Upgrade test failure
2015-05-08 19:35:09 +09:00
Tatsuhiro Tsujikawa
026521b097
integration: Add tests for --header-field-buffer and --max-header-fields
2015-04-29 22:54:25 +09:00
Tatsuhiro Tsujikawa
87cadca3d8
integration: Add HTTP Upgrade test
2015-04-10 21:28:12 +09:00
Tatsuhiro Tsujikawa
ff60cc6b71
integration: Don't send Link header field for resource under /css/
2015-04-08 16:09:02 +09:00
Tatsuhiro Tsujikawa
ccea4d42b5
Refactor .gitignore files
2015-03-29 18:40:37 +09:00
Tatsuhiro Tsujikawa
5c31c130bd
integration: Add test case for trailer part
2015-03-08 19:31:43 +09:00
Tatsuhiro Tsujikawa
c98cf045d6
nghttpx: Use omit minor version in case of HTTP/2 in via header and accesslog
2015-02-24 14:43:01 +09:00
Tatsuhiro Tsujikawa
b157d4ebb2
Validate HTTP semantics by default
...
Previously we did not check HTTP semantics and it is left out for
application. Although checking is relatively easy, but they are
scattered and error prone. We have implemented these checks in our
applications and also feel they are tedious. To make application
development a bit easier, this commit adds basic HTTP semantics
validation to library code. We do following checks:
server:
* HEADERS is either request header or trailer header. Other type of
header is disallowed.
client:
* HEADERS is either zero or more non-final response header or final
response header or trailer header. Other type of header is
disallowed.
For both:
* Check mandatory pseudo header fields.
* Make sure that content-length matches the amount of DATA we
received.
If validation fails, RST_STREAM of type PROTOCOL_ERROR is issued.
2015-02-20 01:01:10 +09:00
Tatsuhiro Tsujikawa
8b4291edcb
integration: Add server push test
2015-02-08 16:10:01 +09:00
Tatsuhiro Tsujikawa
45a47936e0
integration: Update doc
2015-02-08 16:10:01 +09:00
Tatsuhiro Tsujikawa
a68c4c1e3c
nghttpx: Add --no-host-rewrite option
2015-02-04 01:42:26 +09:00
Tatsuhiro Tsujikawa
82f90f9030
nghttpx: Rewrite :authority and host header field
...
We don't rewrite them if -s or -p is used
2015-02-04 01:42:19 +09:00
Tatsuhiro Tsujikawa
4e68ca8233
integration: Add tests about via header field manipulation
...
This test reveals bug in SPDY upstream code, and contains its fix.
2015-01-27 00:19:57 +09:00
Tatsuhiro Tsujikawa
95b3e2f140
integration: Fix typo
2015-01-27 00:19:41 +09:00
Tatsuhiro Tsujikawa
2a56a3d9ea
nghttpx: Fix te request header handling
...
Checking against "trailers" is enough for now.
2015-01-25 22:58:43 +09:00
Tatsuhiro Tsujikawa
3e5765831f
integration: Add missing alt-server.key and alt-server.crt to EXTRA_DIST
2015-01-25 21:35:45 +09:00
Tatsuhiro Tsujikawa
4b58b25c19
nghttpx: Refactor code to build cert_tree, add SNI test
2015-01-25 15:36:14 +09:00
Tatsuhiro Tsujikawa
682db00ba9
integration: Add tests for TE request header field
2015-01-24 16:02:03 +09:00
Tatsuhiro Tsujikawa
8d5c893929
integration: Add Cookie crumbling tests
2015-01-24 00:27:12 +09:00
Tatsuhiro Tsujikawa
b943fbb002
integration: Add test for assembling Cookie works toward HTTP/1 link
2015-01-24 00:17:11 +09:00
Tatsuhiro Tsujikawa
9a89db575a
nghttpx: Reject multiple Content-Length even if their values are identical
2015-01-24 00:07:28 +09:00
Tatsuhiro Tsujikawa
0fcfe16dc5
integration: Document each test cases
2015-01-24 00:01:14 +09:00
Tatsuhiro Tsujikawa
990f9ed4de
integration: Split up single file to 3 based on frontend type
2015-01-23 23:37:11 +09:00
Tatsuhiro Tsujikawa
3c6b75fb2b
Add `make itprep` target to `go get` dependencies
2015-01-23 22:55:42 +09:00
Tatsuhiro Tsujikawa
d1f06b09cd
integration: Add TLS key and certificate for testing
2015-01-23 21:25:21 +09:00
Tatsuhiro Tsujikawa
4a0dba08b9
nghttpx: Set Connection: close after graceful shutdown in HTTP/1 upstream
2015-01-22 23:46:35 +09:00
Tatsuhiro Tsujikawa
b685747643
Add nghttp2_submit_shutdown_notice() to start graceful shutdown
...
nghttp2_submit_shutdown_notice() is used to notify the client that
graceful shutdown is started. We expect that after this call, the
server application should send another GOAWAY using
nghttp2_submit_goaway() with appropriate last_stream_id. In this
commit, we also added nghttp2_session_get_last_proc_stream_id(), which
can be used as last_stream_id parameter.
This commit implements graceful shutdown in nghttpx. The integration
test for graceful shutdown is also added.
2015-01-22 23:21:58 +09:00
Tatsuhiro Tsujikawa
5770c6bd04
nghttpx: Return 503 on hard disconnect in HTTP/2 backend
2015-01-21 23:30:48 +09:00
Tatsuhiro Tsujikawa
2f788aa214
nghttpx: Return 503 when h1 backend connect attempt failed
2015-01-21 23:08:13 +09:00
Tatsuhiro Tsujikawa
f302f1a830
integration: Fix typo
2015-01-21 22:47:22 +09:00
Tatsuhiro Tsujikawa
c0fc726955
nghttpx: Call signal_write in HttpsUpstream::on_downstream_abort_request
2015-01-21 22:45:52 +09:00
Tatsuhiro Tsujikawa
9938a4e952
Remove AM_EXTRA_RECURSIVE_TARGETS since travis automake is too old
2015-01-21 02:07:16 +09:00
Tatsuhiro Tsujikawa
16e91746d9
nghttpx: Return 400 error if multiple CLs are received in SPDY upstream
...
This change adds SPDY upstream tests.
2015-01-21 01:03:56 +09:00
Tatsuhiro Tsujikawa
039d9db5a3
integration: Make multiline string a bit readable
2015-01-20 23:30:38 +09:00
Tatsuhiro Tsujikawa
b9f41e34ef
nghttpx: Return error when downstream HTTP/1 connection attempt failed
2015-01-20 23:27:30 +09:00