|  | @@ -26,13 +26,17 @@ func GetOriginalDestination(conn internet.Connection) (v2net.Destination, error)
 | 
	
		
			
				|  |  |  		addr, err := syscall.GetsockoptIPv6Mreq(int(fd), syscall.IPPROTO_IP, SO_ORIGINAL_DST)
 | 
	
		
			
				|  |  |  		if err != nil {
 | 
	
		
			
				|  |  |  			log.Trace(newError("failed to call getsockopt").Base(err))
 | 
	
		
			
				|  |  | +			return
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		ip := v2net.IPAddress(addr.Multiaddr[4:8])
 | 
	
		
			
				|  |  |  		port := uint16(addr.Multiaddr[2])<<8 + uint16(addr.Multiaddr[3])
 | 
	
		
			
				|  |  |  		dest = v2net.TCPDestination(ip, v2net.Port(port))
 | 
	
		
			
				|  |  |  	})
 | 
	
		
			
				|  |  |  	if err != nil {
 | 
	
		
			
				|  |  | -		return v2net.Destination{}, newError("failed to get original destination").Base(err)
 | 
	
		
			
				|  |  | +		return v2net.Destination{}, newError("failed to control connection").Base(err)
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	if !dest.IsValid() {
 | 
	
		
			
				|  |  | +		return v2net.Destination{}, newError("failed to call getsockopt")
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  	return dest, nil
 | 
	
		
			
				|  |  |  }
 |