diff --git a/lib/tunnel/httpproxy.go b/lib/tunnel/httpproxy.go index 9aa8a83..8c2a58c 100644 --- a/lib/tunnel/httpproxy.go +++ b/lib/tunnel/httpproxy.go @@ -62,12 +62,9 @@ func (p *HTTPProxy) Proxy(remote net.Conn, msg *proto.ControlMessage) { localAddr = p.LocalAddr } - if p.hs == nil { + if p.rp == nil { su, _ := url.Parse(fmt.Sprintf("http://%s", p.LocalAddr)) p.rp = httputil.NewSingleHostReverseProxy(su) - p.hs = &http.Server{ - Handler: p.rp, - } } log.Debug("Dialing local server %q", localAddr) @@ -76,7 +73,11 @@ func (p *HTTPProxy) Proxy(remote net.Conn, msg *proto.ControlMessage) { conn: remote, } - err := p.hs.Serve(sl) + hs := &http.Server{ + Handler: p.rp, + } + + err := hs.Serve(sl) if err != nil { log.Error("Dialing local server %q failed: %s", localAddr, err) p.sendError(remote)