const transportDefaultConnFlow …
const transportDefaultStreamFlow …
const defaultUserAgent …
const initialMaxConcurrentStreams …
const defaultMaxConcurrentStreams …
type Transport …
type transportTestHooks …
func (t *Transport) markNewGoroutine() { … }
func (t *Transport) newTimer(d time.Duration) timer { … }
func (t *Transport) afterFunc(d time.Duration, f func()) timer { … }
func (t *Transport) contextWithTimeout(ctx context.Context, d time.Duration) (context.Context, context.CancelFunc) { … }
func (t *Transport) maxHeaderListSize() uint32 { … }
func (t *Transport) disableCompression() bool { … }
func ConfigureTransport(t1 *http.Transport) error { … }
func ConfigureTransports(t1 *http.Transport) (*Transport, error) { … }
func configureTransports(t1 *http.Transport) (*Transport, error) { … }
func (t *Transport) connPool() ClientConnPool { … }
func (t *Transport) initConnPool() { … }
type ClientConn …
type clientStream …
var got1xxFuncForTests …
func (cs *clientStream) get1xxTraceFunc() func(int, textproto.MIMEHeader) error { … }
func (cs *clientStream) abortStream(err error) { … }
func (cs *clientStream) abortStreamLocked(err error) { … }
func (cs *clientStream) abortRequestBodyWrite() { … }
func (cs *clientStream) closeReqBodyLocked() { … }
type stickyErrWriter …
func (sew stickyErrWriter) Write(p []byte) (n int, err error) { … }
type noCachedConnError …
func (noCachedConnError) IsHTTP2NoCachedConnError() { … }
func (noCachedConnError) Error() string { … }
func isNoCachedConnError(err error) bool { … }
var ErrNoCachedConn …
type RoundTripOpt …
func (t *Transport) RoundTrip(req *http.Request) (*http.Response, error) { … }
func authorityAddr(scheme string, authority string) (addr string) { … }
func (t *Transport) RoundTripOpt(req *http.Request, opt RoundTripOpt) (*http.Response, error) { … }
func (t *Transport) CloseIdleConnections() { … }
var errClientConnClosed …
var errClientConnUnusable …
var errClientConnGotGoAway …
func shouldRetryRequest(req *http.Request, err error) (*http.Request, error) { … }
func canRetryError(err error) bool { … }
func (t *Transport) dialClientConn(ctx context.Context, addr string, singleUse bool) (*ClientConn, error) { … }
func (t *Transport) newTLSConfig(host string) *tls.Config { … }
func (t *Transport) dialTLS(ctx context.Context, network, addr string, tlsCfg *tls.Config) (net.Conn, error) { … }
func (t *Transport) disableKeepAlives() bool { … }
func (t *Transport) expectContinueTimeout() time.Duration { … }
func (t *Transport) NewClientConn(c net.Conn) (*ClientConn, error) { … }
func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, error) { … }
func (cc *ClientConn) healthCheck() { … }
func (cc *ClientConn) SetDoNotReuse() { … }
func (cc *ClientConn) setGoAway(f *GoAwayFrame) { … }
func (cc *ClientConn) CanTakeNewRequest() bool { … }
func (cc *ClientConn) ReserveNewRequest() bool { … }
type ClientConnState …
func (cc *ClientConn) State() ClientConnState { … }
type clientConnIdleState …
func (cc *ClientConn) idleState() clientConnIdleState { … }
func (cc *ClientConn) idleStateLocked() (st clientConnIdleState) { … }
func (cc *ClientConn) canTakeNewRequestLocked() bool { … }
func (cc *ClientConn) tooIdleLocked() bool { … }
func (cc *ClientConn) onIdleTimeout() { … }
func (cc *ClientConn) closeConn() { … }
func (cc *ClientConn) forceCloseConn() { … }
func (cc *ClientConn) closeIfIdle() { … }
func (cc *ClientConn) isDoNotReuseAndIdle() bool { … }
var shutdownEnterWaitStateHook …
func (cc *ClientConn) Shutdown(ctx context.Context) error { … }
func (cc *ClientConn) sendGoAway() error { … }
func (cc *ClientConn) closeForError(err error) { … }
func (cc *ClientConn) Close() error { … }
func (cc *ClientConn) closeForLostPing() { … }
var errRequestCanceled …
func commaSeparatedTrailers(req *http.Request) (string, error) { … }
func (cc *ClientConn) responseHeaderTimeout() time.Duration { … }
func checkConnHeaders(req *http.Request) error { … }
func actualContentLength(req *http.Request) int64 { … }
func (cc *ClientConn) decrStreamReservations() { … }
func (cc *ClientConn) decrStreamReservationsLocked() { … }
func (cc *ClientConn) RoundTrip(req *http.Request) (*http.Response, error) { … }
func (cc *ClientConn) roundTrip(req *http.Request, streamf func(*clientStream)) (*http.Response, error) { … }
func (cs *clientStream) doRequest(req *http.Request, streamf func(*clientStream)) { … }
func (cs *clientStream) writeRequest(req *http.Request, streamf func(*clientStream)) (err error) { … }
func (cs *clientStream) encodeAndWriteHeaders(req *http.Request) error { … }
func (cs *clientStream) cleanupWriteRequest(err error) { … }
func (cc *ClientConn) awaitOpenSlotForStreamLocked(cs *clientStream) error { … }
func (cc *ClientConn) writeHeaders(streamID uint32, endStream bool, maxFrameSize int, hdrs []byte) error { … }
var errStopReqBodyWrite …
var errStopReqBodyWriteAndCancel …
var errReqBodyTooLong …
func (cs *clientStream) frameScratchBufferLen(maxFrameSize int) int { … }
var bufPools …
func bufPoolIndex(size int) int { … }
func (cs *clientStream) writeRequestBody(req *http.Request) (err error) { … }
func (cs *clientStream) awaitFlowControl(maxBytes int) (taken int32, err error) { … }
func validateHeaders(hdrs http.Header) string { … }
var errNilRequestURL …
func (cc *ClientConn) encodeHeaders(req *http.Request, addGzipHeader bool, trailers string, contentLength int64) ([]byte, error) { … }
func shouldSendReqContentLength(method string, contentLength int64) bool { … }
func (cc *ClientConn) encodeTrailers(trailer http.Header) ([]byte, error) { … }
func (cc *ClientConn) writeHeader(name, value string) { … }
type resAndError …
func (cc *ClientConn) addStreamLocked(cs *clientStream) { … }
func (cc *ClientConn) forgetStreamID(id uint32) { … }
type clientConnReadLoop …
func (cc *ClientConn) readLoop() { … }
type GoAwayError …
func (e GoAwayError) Error() string { … }
func isEOFOrNetReadError(err error) bool { … }
func (rl *clientConnReadLoop) cleanup() { … }
func (cc *ClientConn) countReadFrameError(err error) { … }
func (rl *clientConnReadLoop) run() error { … }
func (rl *clientConnReadLoop) processHeaders(f *MetaHeadersFrame) error { … }
func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFrame) (*http.Response, error) { … }
func (rl *clientConnReadLoop) processTrailers(cs *clientStream, f *MetaHeadersFrame) error { … }
type transportResponseBody …
func (b transportResponseBody) Read(p []byte) (n int, err error) { … }
var errClosedResponseBody …
func (b transportResponseBody) Close() error { … }
func (rl *clientConnReadLoop) processData(f *DataFrame) error { … }
func (rl *clientConnReadLoop) endStream(cs *clientStream) { … }
func (rl *clientConnReadLoop) endStreamError(cs *clientStream, err error) { … }
func (rl *clientConnReadLoop) streamByID(id uint32) *clientStream { … }
func (cs *clientStream) copyTrailers() { … }
func (rl *clientConnReadLoop) processGoAway(f *GoAwayFrame) error { … }
func (rl *clientConnReadLoop) processSettings(f *SettingsFrame) error { … }
func (rl *clientConnReadLoop) processSettingsNoWrite(f *SettingsFrame) error { … }
func (rl *clientConnReadLoop) processWindowUpdate(f *WindowUpdateFrame) error { … }
func (rl *clientConnReadLoop) processResetStream(f *RSTStreamFrame) error { … }
func (cc *ClientConn) Ping(ctx context.Context) error { … }
func (rl *clientConnReadLoop) processPing(f *PingFrame) error { … }
func (rl *clientConnReadLoop) processPushPromise(f *PushPromiseFrame) error { … }
func (cc *ClientConn) writeStreamReset(streamID uint32, code ErrCode, err error) { … }
var errResponseHeaderListSize …
var errRequestHeaderListSize …
func (cc *ClientConn) logf(format string, args ...interface{ … }
func (cc *ClientConn) vlogf(format string, args ...interface{ … }
func (t *Transport) vlogf(format string, args ...interface{ … }
func (t *Transport) logf(format string, args ...interface{ … }
var noBody …
type noBodyReader …
func (noBodyReader) Close() error { … }
func (noBodyReader) Read([]byte) (int, error) { … }
type missingBody …
func (missingBody) Close() error { … }
func (missingBody) Read([]byte) (int, error) { … }
func strSliceContains(ss []string, s string) bool { … }
type erringRoundTripper …
func (rt erringRoundTripper) RoundTripErr() error { … }
func (rt erringRoundTripper) RoundTrip(*http.Request) (*http.Response, error) { … }
type gzipReader …
func (gz *gzipReader) Read(p []byte) (n int, err error) { … }
func (gz *gzipReader) Close() error { … }
type errorReader …
func (r errorReader) Read(p []byte) (int, error) { … }
func isConnectionCloseRequest(req *http.Request) bool { … }
func registerHTTPSProtocol(t *http.Transport, rt noDialH2RoundTripper) (err error) { … }
type noDialH2RoundTripper …
func (rt noDialH2RoundTripper) RoundTrip(req *http.Request) (*http.Response, error) { … }
func (t *Transport) idleConnTimeout() time.Duration { … }
func traceGetConn(req *http.Request, hostPort string) { … }
func traceGotConn(req *http.Request, cc *ClientConn, reused bool) { … }
func traceWroteHeaders(trace *httptrace.ClientTrace) { … }
func traceGot100Continue(trace *httptrace.ClientTrace) { … }
func traceWait100Continue(trace *httptrace.ClientTrace) { … }
func traceWroteRequest(trace *httptrace.ClientTrace, err error) { … }
func traceFirstResponseByte(trace *httptrace.ClientTrace) { … }
func traceHasWroteHeaderField(trace *httptrace.ClientTrace) bool { … }
func traceWroteHeaderField(trace *httptrace.ClientTrace, k, v string) { … }
func traceGot1xxResponseFunc(trace *httptrace.ClientTrace) func(int, textproto.MIMEHeader) error { … }
func (t *Transport) dialTLSWithContext(ctx context.Context, network, addr string, cfg *tls.Config) (*tls.Conn, error) { … }