One problem came up. Sorry for the false positive. How can I capture this information for a request which failed to connect?
If a connection times out with, say "context deadline exceeded (Client.Timeout exceeded while awaiting headers)", the local outgoing port is not captured. I'm not seeing anything in the httptrace library for for a "FailedConnInfo" equivalent to "GotConnInfo." Am I overlooking something? On Thursday, October 8, 2020 at 1:12:39 PM UTC-5 urji...@gmail.com wrote: > Hi Ryan, > > You can get it via httptrace (https://blog.golang.org/http-tracing) > > Example: > req, _ := http.NewRequest("GET", "http://example.com", nil) > trace := &httptrace.ClientTrace{ > GotConn: func(connInfo httptrace.GotConnInfo) { > fmt.Printf("Got Conn: %s\n", > connInfo.Conn.LocalAddr().String()) <------------------------- This has the > local outgoing port > }, > } > req = req.WithContext(httptrace.WithClientTrace(req.Context(), trace)) > if _, err := http.DefaultTransport.RoundTrip(req); err != nil { > log.Fatal(err) > } > > > On Wednesday, October 7, 2020 at 9:09:54 AM UTC-7 ryan...@gmail.com wrote: > >> Is it possible to capture the outgoing port for a given HTTP request? >> >> I'm using a knockoff of ab that I wrote in go to send repeated requests >> to a given web service. Sometimes we get an error and I want to look at a >> packet trace of it. The problem is it's really hard to find one failed >> request in 1,000 in a tcp dump. If I can see the source port, that would >> help me narrow it down. >> >> The code I'm doing is effectively this (forgive any typos, this is a >> quick & dirty recopy, not a cut & paste): >> >> tlsConfig := &tls.Config{ >> InsecureSkipVerify: true, >> } >> >> transport := &http.Transport{ >> DisableKeepAlives: true, >> TLSClientCOnfig: tlsCOnfig, >> ResponseHeaderTimeout: time.Duration(headerTimeout) * time.Second, >> } >> >> client := &http.Client{ >> Timeout: time.Duration(timeOut) * time.second, >> Transport: transport, >> } >> >> response, err :=client.Get(*targetURL) // How can I capture the >> outgoing port from this? >> > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/0963d785-b4f4-413a-887f-072da5aaadd7n%40googlegroups.com.