[tor-commits] [websocket/bug18628] Expose the entire ws request instead of just the URL
dcf at torproject.org
dcf at torproject.org
Tue Aug 1 23:57:28 UTC 2017
commit 02a8eb6d7a236f8b805dbd086f1c46f5dfb51149
Author: Hooman <hoomanm at princeton.edu>
Date: Fri Jul 28 17:29:04 2017 -0700
Expose the entire ws request instead of just the URL
---
websocket/websocket.go | 17 ++++++-----------
1 file changed, 6 insertions(+), 11 deletions(-)
diff --git a/websocket/websocket.go b/websocket/websocket.go
index b74e3ae..fac649b 100644
--- a/websocket/websocket.go
+++ b/websocket/websocket.go
@@ -43,7 +43,6 @@ import (
"net"
"net/http"
"strings"
- "net/url"
)
// Settings for potential WebSocket connections. Subprotocols is a list of
@@ -88,9 +87,12 @@ type WebSocket struct {
// Buffer for message payloads, which may be interrupted by control
// messages.
messageBuf bytes.Buffer
- // Request URL
- ReqURL url.URL
+ // Request
+ request http.Request
+}
+func (ws *WebSocket) Request() http.Request {
+ return ws.request
}
func applyMask(payload []byte, maskKey [4]byte) {
@@ -338,13 +340,6 @@ func (handler *HTTPHandler) ServeHTTP(w http.ResponseWriter, req *http.Request)
return
}
- /* URLs are accepted
- if req.URL.Path != "/" {
- httpError(w, bufrw, http.StatusNotFound)
- return
- }
- */
-
// 2. A |Host| header field containing the server's authority.
// We deliberately skip this test.
// 3. An |Upgrade| header field containing the value "websocket",
@@ -395,7 +390,7 @@ func (handler *HTTPHandler) ServeHTTP(w http.ResponseWriter, req *http.Request)
ws.Bufrw = bufrw
ws.IsClient = false
ws.MaxMessageSize = handler.Config.MaxMessageSize
- ws.ReqURL = *req.URL
+ ws.request = *req
// See RFC 6455 section 4.2.2, item 5 for these steps.
More information about the tor-commits
mailing list