mirror of
https://github.com/MetaCubeX/mihomo.git
synced 2025-12-21 09:40:04 +08:00
34 lines
763 B
Go
34 lines
763 B
Go
package proxydialer
|
|
|
|
import (
|
|
"context"
|
|
"net"
|
|
|
|
C "github.com/metacubex/mihomo/constant"
|
|
|
|
M "github.com/metacubex/sing/common/metadata"
|
|
N "github.com/metacubex/sing/common/network"
|
|
)
|
|
|
|
type SingDialer interface {
|
|
N.Dialer
|
|
}
|
|
|
|
type singDialer struct {
|
|
cDialer C.Dialer
|
|
}
|
|
|
|
var _ N.Dialer = (*singDialer)(nil)
|
|
|
|
func (d singDialer) DialContext(ctx context.Context, network string, destination M.Socksaddr) (net.Conn, error) {
|
|
return d.cDialer.DialContext(ctx, network, destination.String())
|
|
}
|
|
|
|
func (d singDialer) ListenPacket(ctx context.Context, destination M.Socksaddr) (net.PacketConn, error) {
|
|
return d.cDialer.ListenPacket(ctx, "udp", "", destination.AddrPort())
|
|
}
|
|
|
|
func NewSingDialer(cDialer C.Dialer) SingDialer {
|
|
return singDialer{cDialer: cDialer}
|
|
}
|