diff --git a/mitm.go b/mitm.go index 29656cb..9f8a54e 100644 --- a/mitm.go +++ b/mitm.go @@ -121,7 +121,14 @@ func (hw *HandlerWrapper) DumpHTTPAndHTTPs(resp http.ResponseWriter, req *http.R connOut, err := net.DialTimeout("tcp", host, time.Second*30) if err != nil { logger.Println("dial to", host, "error:", err) + return } + + if err = req.Write(connOut); err != nil { + logger.Println("send to server error", err) + return + } + respOut, err = http.ReadResponse(bufio.NewReader(connOut), req) if err != nil && err != io.EOF { logger.Println("read response error:", err) @@ -136,9 +143,11 @@ func (hw *HandlerWrapper) DumpHTTPAndHTTPs(resp http.ResponseWriter, req *http.R if err != nil { logger.Panicln("tls dial to", host, "error:", err) + return } if err = req.Write(connOut); err != nil { logger.Println("send to server error", err) + return } respOut, err = http.ReadResponse(bufio.NewReader(connOut), req) @@ -179,6 +188,7 @@ func (hw *HandlerWrapper) ServeHTTP(resp http.ResponseWriter, req *http.Request) hw.https = true hw.InterceptHTTPs(resp, req) } else { + hw.https = false hw.DumpHTTPAndHTTPs(resp, req) } }