From 072ad214810d5487d318c5abfeb087fdedac14c2 Mon Sep 17 00:00:00 2001 From: sta Date: Mon, 15 Dec 2014 15:47:42 +0900 Subject: [PATCH] Added redirection --- websocket-sharp/WebSocket.cs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/websocket-sharp/WebSocket.cs b/websocket-sharp/WebSocket.cs index f608d311..8f10681e 100644 --- a/websocket-sharp/WebSocket.cs +++ b/websocket-sharp/WebSocket.cs @@ -76,6 +76,7 @@ namespace WebSocketSharp private WebSocketContext _context; private CookieCollection _cookies; private NetworkCredential _credentials; + private bool _enableRedirection; private string _extensions; private AutoResetEvent _exitReceiving; private object _forConn; @@ -1242,6 +1243,28 @@ namespace WebSocketSharp _logger.Warn ( String.Format ( "Received a Redirect response that specifies the Location to '{0}'.", url)); + + if (_enableRedirection) { + if (url == null) { + _logger.Error ("No url to redirect is specified."); + return res; + } + + Uri uri; + string msg; + if (!url.TryCreateWebSocketUri (out uri, out msg)) { + _logger.Error ("An invalid url to redirect: " + msg); + return res; + } + + releaseClientResources (); + + _uri = uri; + _secure = uri.Scheme == "wss"; + + setClientStream (); + return sendHandshakeRequest (); + } } return res;