go/src/net
Kévin Dunglas 972870da11 net/http/httputil: forward 1xx responses in ReverseProxy
Support for 1xx responses has recently been merged in
net/http (CL 269997).

As discussed in this CL
(https://go-review.googlesource.com/c/go/+/269997/comments/1ff70bef_c25a829a),
support for forwarding 1xx responses in ReverseProxy has been extracted
in this separate patch.

According to RFC 7231, "a proxy MUST forward 1xx responses unless the
proxy itself requested the generation of the 1xx response".
Consequently, all received 1xx responses are automatically forwarded as long as the
underlying transport supports ClientTrace.Got1xxResponse.

Fixes #26088
Fixes #51914

Change-Id: I3a35ea023b798bfe56b7fb8696d5a49695229cfd
GitHub-Last-Rev: dab8a461fb
GitHub-Pull-Request: golang/go#53164
Reviewed-on: https://go-review.googlesource.com/c/go/+/409536
Reviewed-by: Damien Neil <dneil@google.com>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Rhys Hiltner <rhys@justin.tv>
Run-TryBot: hopehook <hopehook@golangcn.org>
2022-09-14 23:59:32 +00:00
..
http net/http/httputil: forward 1xx responses in ReverseProxy 2022-09-14 23:59:32 +00:00
internal/socktest internal/poll, net, syscall: use accept4 on solaris 2022-05-03 14:38:32 +00:00
mail all: use strings.Builder instead of bytes.Buffer 2022-09-03 18:23:33 +00:00
netip internal/testenv: add and use OptimizationOff/SkipIfOptimizationOff 2022-08-09 12:16:31 +00:00
rpc net/rpc/jsonrpc: use strings.Builder 2022-09-07 01:09:53 +00:00
smtp net/smtp: use strings.Builder 2022-09-07 06:18:03 +00:00
testdata net: allow single dot in resolv.conf search statement 2022-08-19 03:01:14 +00:00
textproto net/textproto: use strings.Builder 2022-09-07 13:55:46 +00:00
url net/url: consistently remove ../ elements in JoinPath 2022-08-23 22:01:05 +00:00
addrselect.go net: precompute rfc6724policyTable in addrselect 2022-09-05 07:16:00 +00:00
addrselect_test.go net: precompute rfc6724policyTable in addrselect 2022-09-05 07:16:00 +00:00
cgo_aix.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
cgo_android.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
cgo_bsd.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
cgo_linux.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
cgo_netbsd.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
cgo_openbsd.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
cgo_resnew.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
cgo_resold.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
cgo_socknew.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
cgo_sockold.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
cgo_solaris.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
cgo_stub.go net: don't set netGo = true on Windows with no cgo 2022-06-22 16:18:44 +00:00
cgo_unix.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
cgo_unix_test.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
cgo_windows.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
conf.go net: permit use of Resolver.PreferGo, netgo on Windows and Plan 9 2022-05-30 21:23:29 +00:00
conf_netcgo.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
conf_test.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
conn_test.go net: lengthen arbitrary SetDeadline timeout by a few orders of magnitude 2021-12-17 02:00:14 +00:00
dial.go net: fix testHookDialTCP race 2022-06-08 17:11:00 +00:00
dial_test.go net: avoid darwin_arm64 bug in TestDialParallelSpuriousConnection 2022-06-13 19:00:03 +00:00
dial_unix_test.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
dnsclient.go net: use fastrand64 in randInt 2022-04-21 17:46:26 +00:00
dnsclient_test.go
dnsclient_unix.go net: rfc number typo 2022-09-02 19:00:13 +00:00
dnsclient_unix_test.go net: discard unrooted 254 byte names, not rooted ones 2022-08-11 18:25:36 +00:00
dnsconfig.go net: permit use of Resolver.PreferGo, netgo on Windows and Plan 9 2022-05-30 21:23:29 +00:00
dnsconfig_unix.go net: allow single dot in resolv.conf search statement 2022-08-19 03:01:14 +00:00
dnsconfig_unix_test.go net: allow single dot in resolv.conf search statement 2022-08-19 03:01:14 +00:00
dnsconfig_windows.go net: permit use of Resolver.PreferGo, netgo on Windows and Plan 9 2022-05-30 21:23:29 +00:00
dnsname_test.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
error_plan9.go
error_plan9_test.go net: refactor TestWriteToTimeout 2021-12-13 16:44:13 +00:00
error_posix.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
error_posix_test.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
error_test.go net: support error.Is of network errors and context errors 2022-04-03 15:43:15 +00:00
error_unix.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
error_unix_test.go net: refactor TestWriteToTimeout 2021-12-13 16:44:13 +00:00
error_windows.go
error_windows_test.go net: refactor TestWriteToTimeout 2021-12-13 16:44:13 +00:00
example_test.go net: add examples for remaining IP functions 2021-10-13 16:36:59 +00:00
external_test.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
fcntl_libc_test.go internal/poll, internal/syscall/unix, net, runtime: convert openbsd (except mips64) to direct libc calls 2022-08-31 16:59:38 +00:00
fcntl_syscall_test.go internal/poll, internal/syscall/unix, net, runtime: convert openbsd (except mips64) to direct libc calls 2022-08-31 16:59:38 +00:00
fd_plan9.go
fd_posix.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
fd_unix.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
fd_windows.go
file.go
file_plan9.go
file_stub.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
file_test.go net: pass a testing.TB to newLocal* helpers 2021-12-13 16:42:23 +00:00
file_unix.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
file_windows.go
hook.go
hook_plan9.go
hook_unix.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
hook_windows.go
hosts.go net: avoid memory copy calling absDomainName 2021-08-16 21:38:38 +00:00
hosts_test.go net: avoid memory copy calling absDomainName 2021-08-16 21:38:38 +00:00
interface.go net: add FlagRunning to exactly reflect the states of an interface. 2022-08-27 05:42:03 +00:00
interface_aix.go net: add FlagRunning to exactly reflect the states of an interface. 2022-08-27 05:42:03 +00:00
interface_bsd.go net: add FlagRunning to exactly reflect the states of an interface. 2022-08-27 05:42:03 +00:00
interface_bsd_test.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
interface_bsdvar.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
interface_darwin.go
interface_freebsd.go net: don't use syscall.NET_RT_IFLISTL on FreeBSD 2021-10-02 16:05:55 +00:00
interface_linux.go net: add FlagRunning to exactly reflect the states of an interface. 2022-08-27 05:42:03 +00:00
interface_linux_test.go
interface_plan9.go net: add FlagRunning to exactly reflect the states of an interface. 2022-08-27 05:42:03 +00:00
interface_solaris.go net: add FlagRunning to exactly reflect the states of an interface. 2022-08-27 05:42:03 +00:00
interface_stub.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
interface_test.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
interface_unix_test.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
interface_windows.go net: add FlagRunning to exactly reflect the states of an interface. 2022-08-27 05:42:03 +00:00
ip.go net: do not panic on nil IPNet.String() 2022-01-05 01:53:39 +00:00
ip_test.go net: do not panic on nil IPNet.String() 2022-01-05 01:53:39 +00:00
iprawsock.go
iprawsock_plan9.go
iprawsock_posix.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
iprawsock_test.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
ipsock.go net: never probe IPv4 map support on DragonFly BSD, OpenBSD 2021-04-12 21:26:59 +00:00
ipsock_plan9.go net: fix (*ipStackCapabilities).probe godoc 2021-04-12 05:11:59 +00:00
ipsock_plan9_test.go
ipsock_posix.go net: fix WriteMsgUDPAddrPort addr handling 2022-07-26 20:27:23 +00:00
ipsock_test.go
listen_test.go net: avoid racing on port reuse in TestListenConfigControl 2022-05-09 18:10:01 +00:00
lookup.go net: Resolver.LookupIP return error for empty string 2022-08-26 22:52:50 +00:00
lookup_fake.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
lookup_plan9.go net: permit use of Resolver.PreferGo, netgo on Windows and Plan 9 2022-05-30 21:23:29 +00:00
lookup_test.go net: use strings.Builder 2022-09-07 00:49:41 +00:00
lookup_unix.go net: permit use of Resolver.PreferGo, netgo on Windows and Plan 9 2022-05-30 21:23:29 +00:00
lookup_windows.go net: avoid infinite recursion in Windows Resolver.lookupTXT 2022-06-15 00:03:12 +00:00
lookup_windows_test.go net: use strings.Builder 2022-09-07 00:49:41 +00:00
mac.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
mac_test.go
main_cloexec_test.go internal/poll, net, syscall: use accept4 on solaris 2022-05-03 14:38:32 +00:00
main_conf_test.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
main_noconf_test.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
main_plan9_test.go
main_posix_test.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
main_test.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
main_unix_test.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
main_windows_test.go
mockserver_test.go net: avoid racing on port reuse in TestListenConfigControl 2022-05-09 18:10:01 +00:00
net.go net: permit use of Resolver.PreferGo, netgo on Windows and Plan 9 2022-05-30 21:23:29 +00:00
net_fake.go net: permit use of Resolver.PreferGo, netgo on Windows and Plan 9 2022-05-30 21:23:29 +00:00
net_test.go net: mark withTCPConnPair as test helper 2022-09-06 16:59:58 +00:00
net_windows_test.go net: skip tests that use netsh on the windows-arm64-10 builder 2022-03-31 21:21:20 +00:00
netgo.go net: don't set netGo = true on Windows with no cgo 2022-06-22 16:18:44 +00:00
netgo_unix_test.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
nss.go net: permit use of Resolver.PreferGo, netgo on Windows and Plan 9 2022-05-30 21:23:29 +00:00
nss_test.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
packetconn_test.go net: create unix sockets in unique directories 2021-12-13 16:42:31 +00:00
parse.go net/netip: add new IP address package 2021-11-02 01:28:01 +00:00
parse_test.go net/netip: add new IP address package 2021-11-02 01:28:01 +00:00
pipe.go
pipe_test.go
platform_test.go all: gofmt -w -r 'interface{} -> any' src 2021-12-13 18:45:54 +00:00
port.go
port_test.go
port_unix.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
protoconn_test.go net: create unix sockets in unique directories 2021-12-13 16:42:31 +00:00
rawconn.go
rawconn_stub_test.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
rawconn_test.go net: pass a testing.TB to newLocal* helpers 2021-12-13 16:42:23 +00:00
rawconn_unix_test.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
rawconn_windows_test.go
resolverdialfunc_test.go net: permit use of Resolver.PreferGo, netgo on Windows and Plan 9 2022-05-30 21:23:29 +00:00
sendfile_linux.go
sendfile_linux_test.go net: fix a typo in BenchmarkSendFile 2022-09-07 01:09:59 +00:00
sendfile_stub.go net: do not use sendfile on iOS 2021-12-01 15:58:46 +00:00
sendfile_test.go all: use io.Seek* instead of deprecated os.SEEK_* 2022-08-08 17:01:54 +00:00
sendfile_unix_alt.go net: add the missing OS Darwin in the comment of sendFile 2022-08-29 20:04:53 +00:00
sendfile_windows.go
server_test.go net: create unix sockets in unique directories 2021-12-13 16:42:31 +00:00
sock_bsd.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
sock_cloexec.go net: remove fallback path in sysSocket 2022-05-03 18:23:13 +00:00
sock_linux.go internal/syscall/unix: consolidate kernelVersion implementations 2022-09-03 18:39:45 +00:00
sock_linux_test.go internal/syscall/unix: consolidate kernelVersion implementations 2022-09-03 18:39:45 +00:00
sock_plan9.go
sock_posix.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
sock_stub.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
sock_windows.go
sockaddr_posix.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
sockopt_aix.go
sockopt_bsd.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
sockopt_linux.go
sockopt_plan9.go
sockopt_posix.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
sockopt_solaris.go
sockopt_stub.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
sockopt_windows.go
sockoptip_bsdvar.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
sockoptip_linux.go
sockoptip_posix.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
sockoptip_stub.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
sockoptip_windows.go
splice_linux.go
splice_stub.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
splice_test.go net: create unix sockets in unique directories 2021-12-13 16:42:31 +00:00
sys_cloexec.go internal/poll, net, syscall: use accept4 on solaris 2022-05-03 14:38:32 +00:00
tcpsock.go net: add conversion from AddrPort to TCPAddr to complement existing inverse 2021-11-11 11:00:33 +00:00
tcpsock_plan9.go net: fix testHookDialTCP race 2022-06-08 17:11:00 +00:00
tcpsock_posix.go net: fix testHookDialTCP race 2022-06-08 17:11:00 +00:00
tcpsock_test.go net: pass a testing.TB to newLocal* helpers 2021-12-13 16:42:23 +00:00
tcpsock_unix_test.go net: pass a testing.TB to newLocal* helpers 2021-12-13 16:42:23 +00:00
tcpsockopt_darwin.go
tcpsockopt_dragonfly.go
tcpsockopt_openbsd.go
tcpsockopt_plan9.go
tcpsockopt_posix.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
tcpsockopt_solaris.go
tcpsockopt_stub.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
tcpsockopt_unix.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
tcpsockopt_windows.go
timeout_test.go os: simplify deadline fluctuation tests 2022-06-30 19:37:21 +00:00
udpsock.go net: document UDPConn.ReadFromUDPAddrPort's AddrPort result more 2022-07-27 15:04:58 +00:00
udpsock_plan9.go net: add ReadFromUDPAddrPort 2021-11-02 18:35:35 +00:00
udpsock_plan9_test.go
udpsock_posix.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
udpsock_test.go net: use testenv.SkipIfOptimizationOff in TestAllocs 2022-08-15 18:44:19 +00:00
unixsock.go
unixsock_linux_test.go
unixsock_plan9.go
unixsock_posix.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
unixsock_readmsg_cloexec.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
unixsock_readmsg_cmsg_cloexec.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
unixsock_readmsg_other.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
unixsock_readmsg_test.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
unixsock_test.go net: create unix sockets in unique directories 2021-12-13 16:42:31 +00:00
unixsock_windows_test.go net: create unix sockets in unique directories 2021-12-13 16:42:31 +00:00
write_unix_test.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
writev_test.go internal/poll, internal/syscall/unix, net: enable writev on solaris 2022-09-06 18:06:02 +00:00
writev_unix.go internal/poll, internal/syscall/unix, net: enable writev on solaris 2022-09-06 18:06:02 +00:00