|  | @@ -21,12 +21,14 @@ import (
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  type FreedomConnection struct {
 | 
	
		
			
				|  |  |  	domainStrategy DomainStrategy
 | 
	
		
			
				|  |  | +	timeout        uint32
 | 
	
		
			
				|  |  |  	dns            dns.Server
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  func NewFreedomConnection(config *Config, space app.Space) *FreedomConnection {
 | 
	
		
			
				|  |  |  	f := &FreedomConnection{
 | 
	
		
			
				|  |  |  		domainStrategy: config.DomainStrategy,
 | 
	
		
			
				|  |  | +		timeout:        config.Timeout,
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  	log.Info("Freedom: Domain strategy: ", f.domainStrategy)
 | 
	
		
			
				|  |  |  	space.InitializeApplication(func() error {
 | 
	
	
		
			
				|  | @@ -111,8 +113,12 @@ func (this *FreedomConnection) Dispatch(destination v2net.Destination, payload *
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		var reader io.Reader = conn
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +		timeout := this.timeout
 | 
	
		
			
				|  |  |  		if destination.IsUDP() {
 | 
	
		
			
				|  |  | -			reader = v2net.NewTimeOutReader(16 /* seconds */, conn)
 | 
	
		
			
				|  |  | +			timeout = 16
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		if timeout > 0 {
 | 
	
		
			
				|  |  | +			reader = v2net.NewTimeOutReader(int(timeout) /* seconds */, conn)
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		v2reader := v2io.NewAdaptiveReader(reader)
 |