mirror of
https://github.com/XTLS/Xray-core.git
synced 2026-07-12 14:48:46 +00:00
Hook to replace DOHL dialer
This commit is contained in:
@@ -11,7 +11,10 @@ import (
|
||||
"github.com/xtls/xray-core/features/outbound"
|
||||
)
|
||||
|
||||
var effectiveSystemDialer SystemDialer = &DefaultSystemDialer{}
|
||||
var (
|
||||
effectiveSystemDialer SystemDialer = &DefaultSystemDialer{}
|
||||
effectiveSystemDNSDialer SystemDialer = &DefaultSystemDialer{}
|
||||
)
|
||||
|
||||
type SystemDialer interface {
|
||||
Dial(ctx context.Context, source net.Address, destination net.Destination, sockopt *SocketConfig) (net.Conn, error)
|
||||
@@ -176,6 +179,13 @@ func UseAlternativeSystemDialer(dialer SystemDialer) {
|
||||
effectiveSystemDialer = dialer
|
||||
}
|
||||
|
||||
func UseAlternativeSystemDNSDialer(dialer SystemDialer) {
|
||||
if dialer == nil {
|
||||
effectiveSystemDNSDialer = &DefaultSystemDialer{}
|
||||
}
|
||||
effectiveSystemDNSDialer = dialer
|
||||
}
|
||||
|
||||
// RegisterDialerController adds a controller to the effective system dialer.
|
||||
// The controller can be used to operate on file descriptors before they are put into use.
|
||||
// It only works when effective dialer is the default dialer.
|
||||
|
||||
Reference in New Issue
Block a user