From 347ae8fd751f31713a4de9c2f8780fb3fde6741b Mon Sep 17 00:00:00 2001 From: v2ray Date: Tue, 26 Jul 2016 17:25:13 +0200 Subject: [PATCH] simplify interface --- transport/internet/system_dialer.go | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/transport/internet/system_dialer.go b/transport/internet/system_dialer.go index 018aa053..81c99f05 100644 --- a/transport/internet/system_dialer.go +++ b/transport/internet/system_dialer.go @@ -49,23 +49,27 @@ type SimpleSystemDialer struct { adapter SystemDialerAdapter } -func (this *SimpleSystemDialer) Dial(src v2net.Address, dest v2net.Destination) (net.Conn, error) { - return this.adapter.Dial(dest.Network().String(), dest.NetAddr()) -} - -func UseAlternativeSystemDialer(dialer SystemDialer) { - effectiveSystemDialer = dialer -} - -func UseAlternativeSimpleSystemDialer(dialer SystemDialerAdapter) { - effectiveSystemDialer = &SimpleSystemDialer{ +func WithAdapter(dialer SystemDialerAdapter) SystemDialer { + return &SimpleSystemDialer{ adapter: dialer, } } +func (this *SimpleSystemDialer) Dial(src v2net.Address, dest v2net.Destination) (net.Conn, error) { + return this.adapter.Dial(dest.Network().String(), dest.NetAddr()) +} + +// UseAlternativeSystemDialer replaces the current system dialer with a given one. +// Caller must ensure there is no race condition. +func UseAlternativeSystemDialer(dialer SystemDialer) { + effectiveSystemDialer = dialer +} + +// SubstituteDialer replaces the current system dialer with a given one. +// Caller must ensure there is no race condition. // @Deprecated: Use UseAlternativeSimpleSystemDialer. func SubstituteDialer(dialer SystemDialerAdapter) error { - UseAlternativeSimpleSystemDialer(dialer) + UseAlternativeSystemDialer(WithAdapter(dialer)) return nil }