net/http: add ErrUseLastResponse, Client.CloseIdleConnections, Transport.Proxy and ProxyURL (#70)

* http: add ErrUseLastResponse and Client.CloseIdleConnections

Both are API-compatibility fills. ErrUseLastResponse is a sentinel a
CheckRedirect func returns to stop following redirects; nothing here has
to act on it beyond existing. CloseIdleConnections delegates to the
Transport when it has the method, which is what net/http does.

Programs that reference either currently fail to compile against this
package for want of a name, which is the whole cost.
This commit is contained in:
Moses Narrow
2026-08-27 02:08:14 -05:00
committed by GitHub
parent 888be68522
commit 902c8d1203
2 changed files with 29 additions and 0 deletions
+14
View File
@@ -34,6 +34,12 @@ type readTrackingBody struct {
// golang.org/x/net/http2 and google.golang.org/grpc. They are stored but, aside
// from fetch, have no effect at runtime.
type Transport struct {
// Proxy specifies a function to return a proxy for a given Request.
//
// TINYGO: present for API compatibility; the netdev-backed transport dials
// directly and does not consult it.
Proxy func(*Request) (*url.URL, error)
// TLSClientConfig specifies the TLS configuration to use with tls.Client.
TLSClientConfig *tls.Config
@@ -130,6 +136,14 @@ func ProxyFromEnvironment(req *Request) (*url.URL, error) {
return nil, nil
}
// ProxyURL returns a proxy function (for use in a Transport) that always returns
// the same URL.
func ProxyURL(fixedURL *url.URL) func(*Request) (*url.URL, error) {
return func(*Request) (*url.URL, error) {
return fixedURL, nil
}
}
// ErrSkipAltProtocol is a sentinel error value defined by Transport.RegisterProtocol.
var ErrSkipAltProtocol = errors.New("net/http: skip alternate protocol")