replace socks server implementation

This commit is contained in:
Vladislav Yarmak
2025-11-20 01:25:35 +02:00
parent 19ecb623ea
commit 99f5c114bc
3 changed files with 31 additions and 11 deletions
+20 -8
View File
@@ -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
}