[tor-commits] [websocket/master] Documentation updates.
dcf at torproject.org
dcf at torproject.org
Fri Jun 28 13:16:57 UTC 2019
commit a10c2e39d7b32973f95d18c29c8d26618782a64c
Author: David Fifield <david at bamsoftware.com>
Date: Fri Jun 28 07:13:33 2019 -0600
Documentation updates.
The requirement for HTTP/1.1 comes from RFC 6455. Using HTTP/1.0 was
causing interoperability problems in https://bugs.torproject.org/30998.
---
websocket/websocket.go | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/websocket/websocket.go b/websocket/websocket.go
index ea15218..af8abb1 100644
--- a/websocket/websocket.go
+++ b/websocket/websocket.go
@@ -332,7 +332,8 @@ func (handler *HTTPHandler) ServeHTTP(w http.ResponseWriter, req *http.Request)
}
defer conn.Close()
- // See RFC 6455 section 4.2.1 for this sequence of checks.
+ // See https://tools.ietf.org/html/rfc6455#section-4.2.1 for this
+ // sequence of checks.
// 1. An HTTP/1.1 or higher GET request, including a "Request-URI"...
if req.Method != "GET" {
@@ -392,9 +393,11 @@ func (handler *HTTPHandler) ServeHTTP(w http.ResponseWriter, req *http.Request)
ws.MaxMessageSize = handler.Config.MaxMessageSize
ws.request = req
- // See RFC 6455 section 4.2.2, item 5 for these steps.
+ // See https://tools.ietf.org/html/rfc6455#section-4.2.2 for these steps.
// 1. A Status-Line with a 101 response code as per RFC 2616.
+ // https://tools.ietf.org/html/rfc6455#section-11.1.1: "Use of WebSocket
+ // requires use of HTTP version 1.1 or higher."
bufrw.WriteString(fmt.Sprintf("HTTP/1.1 %d %s\r\n", http.StatusSwitchingProtocols, http.StatusText(http.StatusSwitchingProtocols)))
// 2. An |Upgrade| header field with value "websocket" as per RFC 2616.
w.Header().Set("Upgrade", "websocket")
More information about the tor-commits
mailing list