// dumpTlsCertificates prints some fields of the certificates received from the server. // Fields will be inspected by the user, so they must be conscise and useful func dumpTLSCertificates(t *tls.ConnectionState) { for _, cert := range t.PeerCertificates { console.Debugln("TLS Certificate found: ") if len(cert.Issuer.Country) > 0 { console.Debugln(" >> Country: " + cert.Issuer.Country[0]) } if len(cert.Issuer.Organization) > 0 { console.Debugln(" >> Organization: " + cert.Issuer.Organization[0]) } console.Debugln(" >> Expires: " + cert.NotAfter.String()) } }
// RoundTrip executes user provided request and response hooks for each HTTP call. func (t RoundTripTrace) RoundTrip(req *http.Request) (res *http.Response, err error) { timeStamp := time.Now() if t.Transport == nil { return nil, client.InvalidArgument{} } res, err = t.Transport.RoundTrip(req) if err != nil { return res, err } if t.Trace != nil { err = t.Trace.Request(req) if err != nil { return nil, err } err = t.Trace.Response(res) if err != nil { return nil, err } console.Debugln("Response Time: ", time.Since(timeStamp).String()+"\n") } return res, err }