From f8037742c8e716892f9bf0f854b3ebb5680b7076 Mon Sep 17 00:00:00 2001 From: "ukai@chromium.org" Date: Tue, 30 Mar 2010 04:16:52 +0000 Subject: Fix WebSocketJob to pass /key_3/ after handshake request header. BUG=none TEST=WebSocketJob::SimpleHandshakeDraft76 passes Review URL: http://codereview.chromium.org/1256001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43054 0039d316-1c4b-4281-b951-d872f2087c98 --- net/websockets/websocket_job.cc | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'net/websockets/websocket_job.cc') diff --git a/net/websockets/websocket_job.cc b/net/websockets/websocket_job.cc index 6e20c17..2f6d4a2 100644 --- a/net/websockets/websocket_job.cc +++ b/net/websockets/websocket_job.cc @@ -331,12 +331,16 @@ void WebSocketJob::OnCanGetCookiesCompleted(int policy) { } } - // Simply ignore rest data in original request header after - // original_handshake_request_header_length_, because websocket protocol - // doesn't allow sending message before handshake is completed. - // TODO(ukai): report as error? + // draft-hixie-thewebsocketprotocol-76 or later will send /key3/ + // after handshake request header. + std::string additional_data = + std::string(original_handshake_request_.data() + + original_handshake_request_header_length_, + original_handshake_request_.size() - + original_handshake_request_header_length_); handshake_request_ = - handshake_request_status_line + handshake_request_header + "\r\n"; + handshake_request_status_line + handshake_request_header + "\r\n" + + additional_data; handshake_request_sent_ = 0; socket_->SendData(handshake_request_.data(), -- cgit v1.1