[tor-commits] [snowflake/master] Add a dummy port number to USERADDR.

dcf at torproject.org dcf at torproject.org
Wed Oct 18 05:14:25 UTC 2017


commit c84e1a2e034bb3e2e454389cf9e8fd71d2d8d040
Author: David Fifield <david at bamsoftware.com>
Date:   Tue Oct 17 21:41:24 2017 -0700

    Add a dummy port number to USERADDR.
    
    Current versions of tor accept USERADDR with or without a port number,
    but future versions may become more strict and require the port number.
    https://bugs.torproject.org/23080
---
 server/server.go | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/server/server.go b/server/server.go
index 29e8137..3c97e06 100644
--- a/server/server.go
+++ b/server/server.go
@@ -130,12 +130,16 @@ func proxy(local *net.TCPConn, conn *webSocketConn) {
 
 // Return an address string suitable to pass into pt.DialOr.
 func clientAddr(clientIPParam string) string {
+	if clientIPParam == "" {
+		return ""
+	}
 	// Check if client addr is a valid IP
 	clientIP := net.ParseIP(clientIPParam)
 	if clientIP == nil {
 		return ""
 	}
-	return clientIPParam
+	// Add a dummy port number. USERADDR requires a port number.
+	return (&net.TCPAddr{IP: clientIP, Port: 1, Zone: ""}).String()
 }
 
 func webSocketHandler(ws *websocket.WebSocket) {





More information about the tor-commits mailing list