Files
opera-proxy/handler/socks.go
T
2026-03-25 15:26:39 +03:00

31 lines
672 B
Go

package handler
import (
"context"
"log"
"net"
"github.com/Alexey71/opera-proxy/dialer"
"github.com/things-go/go-socks5"
)
func NewSocksServer(dialer dialer.ContextDialer, logger *log.Logger) (*socks5.Server, error) {
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
}