|
|
|
@ -499,7 +499,7 @@ namespace WebSocketSharp {
|
|
|
|
// As server
|
|
|
|
// As server
|
|
|
|
private bool acceptHandshake ()
|
|
|
|
private bool acceptHandshake ()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return processRequestHandshake ()
|
|
|
|
return processHandshakeRequest ()
|
|
|
|
? send (createResponseHandshake ())
|
|
|
|
? send (createResponseHandshake ())
|
|
|
|
: false;
|
|
|
|
: false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -722,14 +722,14 @@ namespace WebSocketSharp {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// As client
|
|
|
|
// As client
|
|
|
|
private RequestHandshake createRequestHandshake()
|
|
|
|
private HandshakeRequest createHandshakeRequest ()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var path = _uri.PathAndQuery;
|
|
|
|
var path = _uri.PathAndQuery;
|
|
|
|
var host = _uri.Port == 80
|
|
|
|
var host = _uri.Port == 80
|
|
|
|
? _uri.DnsSafeHost
|
|
|
|
? _uri.DnsSafeHost
|
|
|
|
: _uri.Authority;
|
|
|
|
: _uri.Authority;
|
|
|
|
|
|
|
|
|
|
|
|
var req = new RequestHandshake(path);
|
|
|
|
var req = new HandshakeRequest (path);
|
|
|
|
req.AddHeader ("Host", host);
|
|
|
|
req.AddHeader ("Host", host);
|
|
|
|
|
|
|
|
|
|
|
|
if (_origin.Length > 0)
|
|
|
|
if (_origin.Length > 0)
|
|
|
|
@ -792,7 +792,7 @@ namespace WebSocketSharp {
|
|
|
|
private bool doHandshake ()
|
|
|
|
private bool doHandshake ()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
setClientStream ();
|
|
|
|
setClientStream ();
|
|
|
|
return processResponseHandshake(sendRequestHandshake());
|
|
|
|
return processResponseHandshake (sendHandshakeRequest ());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void error(string message)
|
|
|
|
private void error(string message)
|
|
|
|
@ -1053,10 +1053,10 @@ namespace WebSocketSharp {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// As server
|
|
|
|
// As server
|
|
|
|
private bool processRequestHandshake ()
|
|
|
|
private bool processHandshakeRequest ()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var req = RequestHandshake.Parse (_context);
|
|
|
|
var req = HandshakeRequest.Parse (_context);
|
|
|
|
_logger.Debug ("Request handshake from client:\n" + req.ToString ());
|
|
|
|
_logger.Debug ("A handshake request from a client:\n" + req.ToString ());
|
|
|
|
if (!isValidRequesHandshake ())
|
|
|
|
if (!isValidRequesHandshake ())
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var msg = "Invalid WebSocket connection request.";
|
|
|
|
var msg = "Invalid WebSocket connection request.";
|
|
|
|
@ -1153,9 +1153,9 @@ namespace WebSocketSharp {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// As client
|
|
|
|
// As client
|
|
|
|
private void send(RequestHandshake request)
|
|
|
|
private void send (HandshakeRequest request)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
_logger.Debug("Request handshake to server:\n" + request.ToString());
|
|
|
|
_logger.Debug ("A handshake Request to the server:\n" + request.ToString ());
|
|
|
|
_stream.WriteHandshake (request);
|
|
|
|
_stream.WriteHandshake (request);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -1301,22 +1301,22 @@ namespace WebSocketSharp {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// As client
|
|
|
|
// As client
|
|
|
|
private ResponseHandshake sendRequestHandshake()
|
|
|
|
private ResponseHandshake sendHandshakeRequest ()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var req = createRequestHandshake();
|
|
|
|
var req = createHandshakeRequest ();
|
|
|
|
var res = sendRequestHandshake(req);
|
|
|
|
var res = sendHandshakeRequest (req);
|
|
|
|
if (!_preAuth && res.IsUnauthorized && _credentials != null)
|
|
|
|
if (!_preAuth && res.IsUnauthorized && _credentials != null)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var challenge = res.AuthChallenge;
|
|
|
|
var challenge = res.AuthChallenge;
|
|
|
|
req.SetAuthorization (new AuthenticationResponse (_credentials, challenge));
|
|
|
|
req.SetAuthorization (new AuthenticationResponse (_credentials, challenge));
|
|
|
|
res = sendRequestHandshake(req);
|
|
|
|
res = sendHandshakeRequest (req);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return res;
|
|
|
|
return res;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// As client
|
|
|
|
// As client
|
|
|
|
private ResponseHandshake sendRequestHandshake (RequestHandshake request)
|
|
|
|
private ResponseHandshake sendHandshakeRequest (HandshakeRequest request)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
send (request);
|
|
|
|
send (request);
|
|
|
|
return receiveResponseHandshake ();
|
|
|
|
return receiveResponseHandshake ();
|
|
|
|
|