From c4f4ddcdc51de22ffad663c08ff7c109a32a3b82 Mon Sep 17 00:00:00 2001 From: Mohammad Reza Date: Wed, 13 Apr 2022 17:37:48 +0430 Subject: [PATCH] Update SetProxy --- CryptoExchange.Net/ExtensionMethods.cs | 19 ------------------- .../Sockets/CryptoExchangeWebSocketClient.cs | 17 +++++++---------- 2 files changed, 7 insertions(+), 29 deletions(-) diff --git a/CryptoExchange.Net/ExtensionMethods.cs b/CryptoExchange.Net/ExtensionMethods.cs index 1108d2f..f5600e1 100644 --- a/CryptoExchange.Net/ExtensionMethods.cs +++ b/CryptoExchange.Net/ExtensionMethods.cs @@ -1,12 +1,10 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Runtime.InteropServices; using System.Security; using System.Text; -using System.Text.RegularExpressions; using System.Web; using CryptoExchange.Net.Logging; using CryptoExchange.Net.Objects; @@ -492,23 +490,6 @@ namespace CryptoExchange.Net return ub.Uri; } - - /// - /// checks whether schema is provided - /// - /// - /// - public static bool IsSchemaProvided(this ApiProxy proxy) - { - var url = $"{proxy.Host}:{proxy.Port}"; - var r = new Regex(@"^(?\w+)://[^/]+?(?:\d+)?", - RegexOptions.None, TimeSpan.FromMilliseconds(150)); - var match = r.Match(url); - if (!match.Success) return false; - var proto = match.Result("${proto}"); - return !string.IsNullOrEmpty(proto); - } - } } diff --git a/CryptoExchange.Net/Sockets/CryptoExchangeWebSocketClient.cs b/CryptoExchange.Net/Sockets/CryptoExchangeWebSocketClient.cs index f0229f7..9371231 100644 --- a/CryptoExchange.Net/Sockets/CryptoExchangeWebSocketClient.cs +++ b/CryptoExchange.Net/Sockets/CryptoExchangeWebSocketClient.cs @@ -212,18 +212,15 @@ namespace CryptoExchange.Net.Sockets /// public virtual void SetProxy(ApiProxy proxy) { - if (!proxy.IsSchemaProvided()) - { - _socket.Options.Proxy = new WebProxy(proxy.Host, proxy.Port); - } - else - { - _socket.Options.Proxy = new WebProxy + Uri.TryCreate($"{proxy.Host}:{proxy.Port}", UriKind.Absolute, out var uri); + _socket.Options.Proxy = uri?.Scheme == null + ? _socket.Options.Proxy = new WebProxy(proxy.Host, proxy.Port) + : _socket.Options.Proxy = new WebProxy { - Address = new Uri($"{proxy.Host}:{proxy.Port}"), - Credentials = proxy.Password == null ? null : new NetworkCredential(proxy.Login, proxy.Password) + Address = uri }; - } + if (proxy.Login != null) + _socket.Options.Proxy.Credentials = new NetworkCredential(proxy.Login, proxy.Password); } ///