Declare required fields in the documentation

This commit is contained in:
世界
2022-07-09 09:26:50 +08:00
parent 8fa953a516
commit 211d97ff8a
16 changed files with 107 additions and 6 deletions

31
common/dialer/router.go Normal file
View File

@@ -0,0 +1,31 @@
package dialer
import (
"context"
"net"
"github.com/sagernet/sing-box/adapter"
C "github.com/sagernet/sing-box/constant"
M "github.com/sagernet/sing/common/metadata"
N "github.com/sagernet/sing/common/network"
)
type RouterDialer struct {
router adapter.Router
}
func NewRouter(router adapter.Router) N.Dialer {
return &RouterDialer{router: router}
}
func (d *RouterDialer) DialContext(ctx context.Context, network string, destination M.Socksaddr) (net.Conn, error) {
return d.router.DefaultOutbound(network).DialContext(ctx, network, destination)
}
func (d *RouterDialer) ListenPacket(ctx context.Context, destination M.Socksaddr) (net.PacketConn, error) {
return d.router.DefaultOutbound(C.NetworkUDP).ListenPacket(ctx, destination)
}
func (d *RouterDialer) Upstream() any {
return d.router
}