173 Commits

Author SHA1 Message Date
Kazuho Oku
dd2ea453e4 [spare-pipes] move variables / config knobs to core 2025-04-23 16:09:26 +09:00
Ichito Nagata
faf6912fc3 rename proxy mode enum 2024-11-05 22:23:25 +00:00
Ichito Nagata
d44ff4919a remove redundant check 2024-10-31 06:57:27 +00:00
Ichito Nagata
9c96b82034 forward expect 2024-10-10 19:38:00 +00:00
Kazuho Oku
5ccb258720 clang-format 2024-02-02 08:03:30 -08:00
Ichito Nagata
198140c6bf rename from expect_100_continue to use_expect 2024-01-31 21:46:03 +00:00
Ichito Nagata
1b9fcc2bad Merge branch 'master' into i110/expect-100-continue 2024-01-31 08:55:52 +00:00
Kazuho Oku
cd622ec128 add directive to turn on/off masque-draft-03 support, in order to declare RFC versions of CONNECT-UDP and CONNECT as production ready 2023-12-17 18:33:58 +09:00
Kazuho Oku
a871fd0831 avoid hard-coding RFC 9298 path 2023-12-17 16:05:46 +09:00
Ichito Nagata
813dfb2b94 wait 100 continue response before sending req body 2023-12-01 09:01:52 +00:00
Kazuho Oku
76d8e1821e When parsing absolute form that omits / (i.e., scheme://host?query), prepend / to the generated path component, otherwise callers expecting / at the beginning will start to fail. 2023-11-24 16:11:31 +09:00
Kazuho Oku
bdc2d06bf3 clang-format 2023-11-16 12:58:37 +09:00
Joe Damato
11d1d5022a Allow 0 for max-spare-pipes to disable the behavior 2023-11-15 09:45:08 -08:00
Joe Damato
d68f62bf8a Change name of proxy.max-pipes to proxy.max-spare-pipes 2023-11-10 11:48:56 -08:00
Joe Damato
ea994c3aee Add support for reusing pipes
In some cases on highly loaded servers, calling pipe2 to create sockets can
cause kernel lock contention on the file table.

Add a per-thread linked list of pipe file descriptors that can be reused
and add a new proxy.max-pipes config value to control how many pipes per
thread are retained. Default is 64.

Care is taken to drain the read side of the pipe before saving the file
descriptor for reuse.
2023-11-09 17:57:42 -08:00
Kazuho Oku
7c697a7883 deprecate names that stick out 2023-05-04 12:06:11 +09:00
Kazuho Oku
36710ddcdd reject zero as a config value 2023-04-18 14:46:07 +09:00
Jozef Hatala
fb5bc5c597 Make proxy.forward.close-connection configurable at all levels. 2022-10-05 23:57:33 -07:00
Kazuho Oku
4f9a05fa16 Use one-word "zerocopy" throughout, following MSG_ZEROCOPY. This changes proxy.zero-copy directive added in #2993 as well. 2022-05-18 17:16:54 +09:00
Kazuho Oku
e7845350b5 add knob to toggle use of zero copy 2022-04-19 14:26:42 +09:00
Jozef Hatala
9de7392ca0 Merge with master. 2022-02-14 20:14:29 -08:00
Jozef Hatala
848f337237 Add config command proxy.http2.force-cleartext.
`proxy.http2.force-cleartext: ON` together with `proxy.http2.ratio: 100`
and with an `http` URL in `proxy.reverse.url` instructs the proxy to use
the cleartext HTTP/2 protocol without discovery or negotiation.

The h2o configuration will be rejected if `proxy.http2.force-cleartext`
is set to `ON` yet `proxy.http2.ratio` is not set to `100`,

This configuration command has no effect if the URL in `proxy.reverse.url` is
an `https` URL because over TLS the ALPN negotiation is mandatory for HTTP/2.
2022-02-14 19:52:24 -08:00
Kazuho Oku
a8e17849ae add config knobs for happy eyeballs 2021-11-29 13:52:45 +09:00
Jozef Hatala
8d629a8562 Merge with kazuho/connect-udp. Reintroduce handling h2o_open_udp_tunnel_from_sa failure. 2021-04-07 03:32:47 -07:00
Jozef Hatala
c0b0d0e089 h2o_encode_sf_string now lives in <h2o/string_.h>. 2021-04-01 18:00:59 -07:00
Jozef Hatala
7ec24ba435 No need to NUL-terminate the iovec in encode_sf_string and on_config_proxy_status_identity. 2021-04-01 18:00:59 -07:00
Kazuho Oku
823f4cab3b fix typo 2021-03-26 16:21:11 +09:00
Jozef Hatala
54266f174a Add error details in a Proxy-Status header when a CONNECT request fails.
This is an implementation of
https://tools.ietf.org/html/draft-ietf-httpbis-proxy-status-03
that allows the client to distinguish the different ways in which CONNECT
requests can fail.
2021-03-25 11:35:47 -07:00
Kazuho Oku
527f009661 ACL for connect 2021-02-15 22:09:22 +09:00
Kazuho Oku
372e6783b9 use proxy.timeout.io for tunnels too 2021-02-15 10:47:19 +09:00
Kazuho Oku
0577c9bbf5 clang-format 2021-02-03 13:25:31 +09:00
Frederik Deweerdt
3fd2ce5ac6 s/h2o_proxy_register_proxy/h2o_proxy_register_reverse_proxy/ 2021-01-14 08:54:41 -08:00
Frederik Deweerdt
16bef54a1d Rename configuration option to proxy.connect 2021-01-13 12:28:20 -08:00
Frederik Deweerdt
258c54f227 rename the register functions 2021-01-13 12:09:43 -08:00
Frederik Deweerdt
07d8545430 A forward proxy supporting the CONNECT method
This PR adds a forward proxy handler that supports the CONNECT method
(which can be used by curl via the `-p -x` options).
2021-01-11 12:44:50 -08:00
Kazuho Oku
7374a3a8e5 Merge branch 'master' into kazuho/connect-method 2021-01-06 14:26:36 +09:00
Kazuho Oku
fb2283c27a add knob to turn on http3 reverse proxying (both http2.ratio and http3.ratio are yet to be documented) 2020-12-25 10:23:42 +09:00
Kazuho Oku
eaa768211e unify HTTP/3 client API to the generic httpclient API 2020-12-22 17:04:46 +09:00
Kazuho Oku
a5ee409133 support proxying of CONNECT request on H1 2020-12-05 21:35:26 +09:00
Kazuho Oku
ceee764a93 websocket proxying is just one form of tunneling 2020-12-05 14:18:30 +09:00
Roberto Guimaraes
f27add8a32 address review comments. SSL_set_app_data is actually a void function. 2019-07-29 10:35:19 -06:00
Roberto Guimaraes
8336a14ef5 keep deprecated methods for older openssl - avoiding having to check ossl versions 2019-07-23 22:54:38 -06:00
Roberto Guimaraes
147e0d1ab0 add support for ossl-1.1.1 resumption by moving from the get1 session api to the the new_session callback. also set the context and explicit client session behavior when creating new ossl CTXs.
Fixes 50reverse-proxy-session-resumption.t when linking against openssl-1.1.1
2019-07-23 22:22:28 -06:00
Kazuho Oku
526c69ed7e clang-format 2019-04-12 11:53:48 +09:00
Kazuho Oku
409064278b Merge pull request #2008
add 'H2O_ERROR_PRINTF' macro, default is 'fprintf(stderr,...)'
2019-03-29 07:25:32 +01:00
Kazuho Oku
0a68ee8d37 clang-format 2019-03-29 05:00:53 +01:00
Kazuho Oku
f915e5882d use lowercase for consistency with h2o_perror (there's no need to clarify it as a macro) 2019-03-29 04:59:23 +01:00
Toru Maesaka
149a1c5dc5 proxy: add a proxy.forward.close-connection setting 2019-03-20 14:35:17 -07:00
Baodong Chen
6e99cb4915 add 'H2O_ERROR_PRINTF' macro instead of 'fprintf(stderr,...)' directly 2019-03-16 20:22:03 +08:00
Kazuho Oku
004b35b4ac apply misc/clang-format-all.sh 2019-02-24 11:00:33 +09:00