mirror of
				https://github.com/JKorf/CryptoExchange.Net
				synced 2025-10-31 10:27:48 +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 | ||||||
|                 { |                 { | ||||||
|                 _socket.Options.Proxy = new WebProxy(proxy.Host, proxy.Port); |                     Address = uri | ||||||
|             } |  | ||||||
|             else |  | ||||||
|             { |  | ||||||
|                 _socket.Options.Proxy = new WebProxy |  | ||||||
|                 { |  | ||||||
|                     Address     = new Uri($"{proxy.Host}:{proxy.Port}"), |  | ||||||
|                     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