lib/tunnel: make each conn have its own server
This commit is contained in:
parent
48327a7669
commit
f3c299acf9
|
@ -62,12 +62,9 @@ func (p *HTTPProxy) Proxy(remote net.Conn, msg *proto.ControlMessage) {
|
||||||
localAddr = p.LocalAddr
|
localAddr = p.LocalAddr
|
||||||
}
|
}
|
||||||
|
|
||||||
if p.hs == nil {
|
if p.rp == nil {
|
||||||
su, _ := url.Parse(fmt.Sprintf("http://%s", p.LocalAddr))
|
su, _ := url.Parse(fmt.Sprintf("http://%s", p.LocalAddr))
|
||||||
p.rp = httputil.NewSingleHostReverseProxy(su)
|
p.rp = httputil.NewSingleHostReverseProxy(su)
|
||||||
p.hs = &http.Server{
|
|
||||||
Handler: p.rp,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Debug("Dialing local server %q", localAddr)
|
log.Debug("Dialing local server %q", localAddr)
|
||||||
|
@ -76,7 +73,11 @@ func (p *HTTPProxy) Proxy(remote net.Conn, msg *proto.ControlMessage) {
|
||||||
conn: remote,
|
conn: remote,
|
||||||
}
|
}
|
||||||
|
|
||||||
err := p.hs.Serve(sl)
|
hs := &http.Server{
|
||||||
|
Handler: p.rp,
|
||||||
|
}
|
||||||
|
|
||||||
|
err := hs.Serve(sl)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("Dialing local server %q failed: %s", localAddr, err)
|
log.Error("Dialing local server %q failed: %s", localAddr, err)
|
||||||
p.sendError(remote)
|
p.sendError(remote)
|
||||||
|
|
Loading…
Reference in New Issue