From dc98fa0b887e3e539b45acaf15ed6a401768b9a3 Mon Sep 17 00:00:00 2001 From: listomebao <1421967301@qq.com> Date: Wed, 13 Jul 2016 23:29:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E4=B8=A2=E5=A4=B1http?= =?UTF-8?q?=E8=AF=B7=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mitm.go | 10 ++++++++++ 1 file changed, 10 insertions(+) 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) } }