tls on a socks5 does NOT work out of the box
parent
fd9bb5b0b1
commit
fd7ec1a90b
|
|
@ -111,11 +111,22 @@ func (p Proxy) ServeTLS(ln net.Listener, certFile, keyFile string) {
|
||||||
ln = tls.NewListener(ln, cfg)
|
ln = tls.NewListener(ln, cfg)
|
||||||
defer ln.Close()
|
defer ln.Close()
|
||||||
|
|
||||||
|
socksListener, httpListener := proxymux.SplitSOCKSAndHTTP(ln)
|
||||||
|
errc := make(chan error, 2)
|
||||||
|
go func() {
|
||||||
for {
|
for {
|
||||||
if err := acceptAndHandle(ln, httpproxy.Handler(d), d); err != nil {
|
if err := acceptAndHandle(httpListener, httpproxy.Handler(d), d); err != nil {
|
||||||
panic(err)
|
errc <- err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}()
|
||||||
|
go func() {
|
||||||
|
socksProxy := &socks5.Server{Dialer: d}
|
||||||
|
if err := socksProxy.Serve(socksListener); err != nil {
|
||||||
|
errc <- err
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
<-errc
|
||||||
}
|
}
|
||||||
|
|
||||||
type singleListener struct {
|
type singleListener struct {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue