mirror of
https://github.com/JKorf/CryptoExchange.Net
synced 2025-06-08 00:16:27 +00:00
Update SetProxy
This commit is contained in:
parent
4f4d2ccff3
commit
c4f4ddcdc5
@ -1,12 +1,10 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Security;
|
using System.Security;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.RegularExpressions;
|
|
||||||
using System.Web;
|
using System.Web;
|
||||||
using CryptoExchange.Net.Logging;
|
using CryptoExchange.Net.Logging;
|
||||||
using CryptoExchange.Net.Objects;
|
using CryptoExchange.Net.Objects;
|
||||||
@ -492,23 +490,6 @@ namespace CryptoExchange.Net
|
|||||||
|
|
||||||
return ub.Uri;
|
return ub.Uri;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// checks whether schema is provided
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="proxy"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public static bool IsSchemaProvided(this ApiProxy proxy)
|
|
||||||
{
|
|
||||||
var url = $"{proxy.Host}:{proxy.Port}";
|
|
||||||
var r = new Regex(@"^(?<proto>\w+)://[^/]+?(?<port>:\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);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -212,18 +212,15 @@ namespace CryptoExchange.Net.Sockets
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public virtual void SetProxy(ApiProxy proxy)
|
public virtual void SetProxy(ApiProxy proxy)
|
||||||
{
|
{
|
||||||
if (!proxy.IsSchemaProvided())
|
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(proxy.Host, proxy.Port)
|
||||||
}
|
: _socket.Options.Proxy = new WebProxy
|
||||||
else
|
|
||||||
{
|
|
||||||
_socket.Options.Proxy = new WebProxy
|
|
||||||
{
|
{
|
||||||
Address = new Uri($"{proxy.Host}:{proxy.Port}"),
|
Address = uri
|
||||||
Credentials = proxy.Password == null ? null : new NetworkCredential(proxy.Login, proxy.Password)
|
|
||||||
};
|
};
|
||||||
}
|
if (proxy.Login != null)
|
||||||
|
_socket.Options.Proxy.Credentials = new NetworkCredential(proxy.Login, proxy.Password);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
Loading…
x
Reference in New Issue
Block a user