mirror of
https://github.com/Alexey71/opera-proxy.git
synced 2026-05-13 14:11:00 +00:00
replace socks server implementation
This commit is contained in:
+20
-8
@@ -1,18 +1,30 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"context"
|
||||
"log"
|
||||
"net"
|
||||
|
||||
"github.com/Snawoot/opera-proxy/dialer"
|
||||
"github.com/armon/go-socks5"
|
||||
"github.com/things-go/go-socks5"
|
||||
)
|
||||
|
||||
func NewSocksServer(dialer dialer.ContextDialer, logger *log.Logger) (*socks5.Server, error) {
|
||||
return socks5.New(&socks5.Config{
|
||||
Rules: &socks5.PermitCommand{
|
||||
EnableConnect: true,
|
||||
},
|
||||
Logger: logger,
|
||||
Dial: dialer.DialContext,
|
||||
})
|
||||
opts := []socks5.Option{
|
||||
socks5.WithLogger(socks5.NewLogger(logger)),
|
||||
socks5.WithRule(
|
||||
&socks5.PermitCommand{
|
||||
EnableConnect: true,
|
||||
},
|
||||
),
|
||||
socks5.WithDial(dialer.DialContext),
|
||||
socks5.WithResolver(DummySocksResolver{}),
|
||||
}
|
||||
return socks5.NewServer(opts...), nil
|
||||
}
|
||||
|
||||
type DummySocksResolver struct{}
|
||||
|
||||
func (_ DummySocksResolver) Resolve(ctx context.Context, name string) (context.Context, net.IP, error) {
|
||||
return ctx, nil, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user