Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ CheckHostName()

static unsafe UriHostNameType System.Uri.CheckHostName ( string? name)
inlinestatic

Definition at line 963 of file Uri.cs.

964 {
965 if (string.IsNullOrEmpty(name) || name.Length > 32767)
966 {
967 return UriHostNameType.Unknown;
968 }
969 int end = name.Length;
970 fixed (char* name2 = name)
971 {
972 if (name[0] == '[' && name[name.Length - 1] == ']' && IPv6AddressHelper.IsValid(name2, 1, ref end) && end == name.Length)
973 {
974 return UriHostNameType.IPv6;
975 }
976 end = name.Length;
977 if (IPv4AddressHelper.IsValid(name2, 0, ref end, allowIPv6: false, notImplicitFile: false, unknownScheme: false) && end == name.Length)
978 {
979 return UriHostNameType.IPv4;
980 }
981 end = name.Length;
982 bool notCanonical = false;
983 if (DomainNameHelper.IsValid(name2, 0, ref end, ref notCanonical, notImplicitFile: false) && end == name.Length)
984 {
985 return UriHostNameType.Dns;
986 }
987 end = name.Length;
988 notCanonical = false;
989 if (DomainNameHelper.IsValidByIri(name2, 0, ref end, ref notCanonical, notImplicitFile: false) && end == name.Length)
990 {
991 return UriHostNameType.Dns;
992 }
993 }
994 end = name.Length + 2;
995 name = "[" + name + "]";
996 fixed (char* name3 = name)
997 {
998 if (IPv6AddressHelper.IsValid(name3, 1, ref end) && end == name.Length)
999 {
1000 return UriHostNameType.IPv6;
1001 }
1002 }
1003 return UriHostNameType.Unknown;
1004 }

References System.Runtime.Serialization.Dictionary, System.DomainNameHelper.IsValid(), System.IPv6AddressHelper.IsValid(), System.IPv4AddressHelper.IsValid(), and System.DomainNameHelper.IsValidByIri().

Referenced by System.Net.ServiceNameStore.NormalizeServiceName(), and System.Security.Authentication.ExtendedProtection.ServiceNameCollection.NormalizeServiceName().