| // Copyright 2016 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| // +build !go1.7 |
| |
| package http2 |
| |
| import ( |
| "crypto/tls" |
| "net" |
| "net/http" |
| "time" |
| ) |
| |
| type contextContext interface { |
| Done() <-chan struct{} |
| Err() error |
| } |
| |
| type fakeContext struct{} |
| |
| func (fakeContext) Done() <-chan struct{} { return nil } |
| func (fakeContext) Err() error { panic("should not be called") } |
| |
| func reqContext(r *http.Request) fakeContext { |
| return fakeContext{} |
| } |
| |
| func setResponseUncompressed(res *http.Response) { |
| // Nothing. |
| } |
| |
| type clientTrace struct{} |
| |
| func requestTrace(*http.Request) *clientTrace { return nil } |
| func traceGotConn(*http.Request, *ClientConn) {} |
| func traceFirstResponseByte(*clientTrace) {} |
| func traceWroteHeaders(*clientTrace) {} |
| func traceWroteRequest(*clientTrace, error) {} |
| func traceGot100Continue(trace *clientTrace) {} |
| func traceWait100Continue(trace *clientTrace) {} |
| |
| func nop() {} |
| |
| func serverConnBaseContext(c net.Conn, opts *ServeConnOpts) (ctx contextContext, cancel func()) { |
| return nil, nop |
| } |
| |
| func contextWithCancel(ctx contextContext) (_ contextContext, cancel func()) { |
| return ctx, nop |
| } |
| |
| func requestWithContext(req *http.Request, ctx contextContext) *http.Request { |
| return req |
| } |
| |
| // temporary copy of Go 1.6's private tls.Config.clone: |
| func cloneTLSConfig(c *tls.Config) *tls.Config { |
| return &tls.Config{ |
| Rand: c.Rand, |
| Time: c.Time, |
| Certificates: c.Certificates, |
| NameToCertificate: c.NameToCertificate, |
| GetCertificate: c.GetCertificate, |
| RootCAs: c.RootCAs, |
| NextProtos: c.NextProtos, |
| ServerName: c.ServerName, |
| ClientAuth: c.ClientAuth, |
| ClientCAs: c.ClientCAs, |
| InsecureSkipVerify: c.InsecureSkipVerify, |
| CipherSuites: c.CipherSuites, |
| PreferServerCipherSuites: c.PreferServerCipherSuites, |
| SessionTicketsDisabled: c.SessionTicketsDisabled, |
| SessionTicketKey: c.SessionTicketKey, |
| ClientSessionCache: c.ClientSessionCache, |
| MinVersion: c.MinVersion, |
| MaxVersion: c.MaxVersion, |
| CurvePreferences: c.CurvePreferences, |
| } |
| } |
| |
| func (cc *ClientConn) Ping(ctx contextContext) error { |
| return cc.ping(ctx) |
| } |
| |
| func (t *Transport) idleConnTimeout() time.Duration { return 0 } |