diff --git a/shadowsocks-csharp/Model/Server.cs b/shadowsocks-csharp/Model/Server.cs index 6ba1559d..66593ea4 100755 --- a/shadowsocks-csharp/Model/Server.cs +++ b/shadowsocks-csharp/Model/Server.cs @@ -1,4 +1,6 @@ using System; +using System.Net; +using System.Net.Sockets; using System.Text; using System.Text.RegularExpressions; @@ -39,14 +41,25 @@ namespace Shadowsocks.Model { return I18N.GetString("New server"); } - if (remarks.IsNullOrEmpty()) - { - return server + ":" + server_port; - } - else - { - return remarks + " (" + server + ":" + server_port + ")"; + IPAddress addr; + IPAddress.TryParse( server, out addr ); + if ( remarks.IsNullOrEmpty() ) { + switch ( addr.AddressFamily ) { + case AddressFamily.InterNetwork: + return $"{server}:{server_port}"; + case AddressFamily.InterNetworkV6: + return $"[{server}]:{server_port}"; + } + } else { + switch ( addr.AddressFamily ) { + case AddressFamily.InterNetwork: + return $"{remarks} ({server}:{server_port})"; + case AddressFamily.InterNetworkV6: + return $"{remarks} ([{server}]:{server_port})"; + } } + // This should not happen, user should check the input instead of blaming + return null; } public Server() diff --git a/shadowsocks-csharp/View/LogForm.cs b/shadowsocks-csharp/View/LogForm.cs index 3912b355..f804f781 100644 --- a/shadowsocks-csharp/View/LogForm.cs +++ b/shadowsocks-csharp/View/LogForm.cs @@ -93,7 +93,7 @@ namespace Shadowsocks.View })); } } - catch (ObjectDisposedException ex) + catch (ObjectDisposedException) { // suppress the thread race error: // when closing the form but the Invoked Action is still working and cause 'Chart is Disposed' exception