@@ -12,7 +12,6 @@ public class BindingAddress
1212{
1313 private const string UnixPipeHostPrefix = "unix:/" ;
1414 private const string NamedPipeHostPrefix = "pipe:/" ;
15- private const string IPv6LoopBackPrefix = "[::1]" ;
1615
1716 private BindingAddress ( string host , string pathBase , int port , string scheme )
1817 {
@@ -164,7 +163,6 @@ public static BindingAddress Parse(string address)
164163
165164 var isUnixPipe = address . IndexOf ( UnixPipeHostPrefix , schemeDelimiterEnd , StringComparison . Ordinal ) == schemeDelimiterEnd ;
166165 var isNamedPipe = address . IndexOf ( NamedPipeHostPrefix , schemeDelimiterEnd , StringComparison . Ordinal ) == schemeDelimiterEnd ;
167- var isIPv6LoopBack = address . IndexOf ( IPv6LoopBackPrefix , schemeDelimiterEnd , StringComparison . Ordinal ) == schemeDelimiterEnd ;
168166
169167 int pathDelimiterStart ;
170168 int pathDelimiterEnd ;
@@ -207,8 +205,9 @@ public static BindingAddress Parse(string address)
207205 var hasSpecifiedPort = false ;
208206 if ( ! isUnixPipe && ! isNamedPipe )
209207 {
208+ // Verify not a loopback uri.
210209 var portDelimiterStart = address . LastIndexOf ( ':' , pathDelimiterStart - 1 , pathDelimiterStart - schemeDelimiterEnd ) ;
211- if ( portDelimiterStart >= 0 && ! isIPv6LoopBack )
210+ if ( portDelimiterStart >= 0 && address . Substring ( pathDelimiterStart - 1 , 1 ) != "]" )
212211 {
213212 var portDelimiterEnd = portDelimiterStart + ":" . Length ;
214213
0 commit comments