|  | @@ -49,23 +49,27 @@ type SimpleSystemDialer struct {
 | 
	
		
			
				|  |  |  	adapter SystemDialerAdapter
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +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
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -func UseAlternativeSimpleSystemDialer(dialer SystemDialerAdapter) {
 | 
	
		
			
				|  |  | -	effectiveSystemDialer = &SimpleSystemDialer{
 | 
	
		
			
				|  |  | -		adapter: 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
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 |