1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-06-10 09:50:43 +00:00

simplify interface

This commit is contained in:
v2ray 2016-07-26 17:25:13 +02:00
parent ca0ae50e62
commit 347ae8fd75
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169

View File

@ -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
}