286 references to UriSyntaxFlags
System.Private.Uri (286)
System\GenericUriParser.cs (32)
61private static UriSyntaxFlags MapGenericParserOptions(GenericUriParserOptions options) 67UriSyntaxFlags flags = DefaultGenericUriParserFlags; 72flags &= ~(UriSyntaxFlags.MayHaveUserInfo | UriSyntaxFlags.MayHavePort | UriSyntaxFlags.AllowUncHost | UriSyntaxFlags.AllowAnInternetHost); 73flags |= UriSyntaxFlags.AllowAnyOtherHost; 78flags |= UriSyntaxFlags.AllowEmptyHost; 83flags &= ~UriSyntaxFlags.MayHaveUserInfo; 88flags &= ~UriSyntaxFlags.MayHavePort; 93flags &= ~UriSyntaxFlags.MayHaveQuery; 98flags &= ~UriSyntaxFlags.MayHaveFragment; 103flags &= ~UriSyntaxFlags.ConvertPathSlashes; 108flags &= ~(UriSyntaxFlags.CompressPath | UriSyntaxFlags.CanonicalizeAsFilePath); 113flags &= ~UriSyntaxFlags.UnEscapeDotsAndSlashes; 118flags |= UriSyntaxFlags.AllowIdn; 123flags |= UriSyntaxFlags.AllowIriParsing; 129private const UriSyntaxFlags DefaultGenericUriParserFlags = 130UriSyntaxFlags.MustHaveAuthority | 131UriSyntaxFlags.MayHaveUserInfo | 132UriSyntaxFlags.MayHavePort | 133UriSyntaxFlags.MayHavePath | 134UriSyntaxFlags.MayHaveQuery | 135UriSyntaxFlags.MayHaveFragment | 136UriSyntaxFlags.AllowUncHost | 137UriSyntaxFlags.AllowAnInternetHost | 138UriSyntaxFlags.PathIsRooted | 139UriSyntaxFlags.ConvertPathSlashes | 140UriSyntaxFlags.CompressPath | 141UriSyntaxFlags.CanonicalizeAsFilePath | 142UriSyntaxFlags.UnEscapeDotsAndSlashes;
System\Uri.cs (75)
325return syntax is null || syntax.InFact(UriSyntaxFlags.AllowIriParsing); 1003return syntax.InFact(UriSyntaxFlags.FileLikeUri); 1560if (_syntax.InFact(UriSyntaxFlags.MailToLikeUri)) 1856if (_syntax.InFact(UriSyntaxFlags.MailToLikeUri)) 1858if (!other._syntax.InFact(UriSyntaxFlags.MailToLikeUri)) 2030if (_syntax.IsAllSet(UriSyntaxFlags.AllowEmptyHost | UriSyntaxFlags.AllowDOSPath) && 2046if (_syntax.InFact(UriSyntaxFlags.FileLikeUri) || i - idx <= 3) 2060if (_syntax.InFact(UriSyntaxFlags.FileLikeUri)) 2068if (_syntax.InFact(UriSyntaxFlags.MustHaveAuthority)) 2085else if (_syntax.InFact(UriSyntaxFlags.FileLikeUri) && 2094else if (!OperatingSystem.IsWindows() && _syntax.InFact(UriSyntaxFlags.FileLikeUri) && str[i - 1] == '/' && i - idx == 3) 2113if (_syntax.InFact(UriSyntaxFlags.MustHaveAuthority)) 2126else if (_syntax.InFact(UriSyntaxFlags.OptionalAuthority) && (InFact(Flags.AuthorityFound) || 2134else if (_syntax.NotAny(UriSyntaxFlags.MailToLikeUri)) 2146else if (_syntax.InFact(UriSyntaxFlags.MustHaveAuthority)) 2152else if (_syntax.NotAny(UriSyntaxFlags.MailToLikeUri)) 2193if (hostTerminator == '\\' && NotAny(Flags.ImplicitFile) && _syntax.NotAny(UriSyntaxFlags.AllowDOSPath)) 3214UriSyntaxFlags syntaxFlags = _syntax.Flags; 3215bool iriParsing = (syntaxFlags & UriSyntaxFlags.AllowIriParsing) != 0; 3251if ((cF & Flags.ImplicitFile) != 0 || (syntaxFlags & UriSyntaxFlags.MayHaveQuery) == 0) 3278(cF & Flags.ImplicitFile) != 0 || (syntaxFlags & (UriSyntaxFlags.MayHaveQuery | UriSyntaxFlags.MayHaveFragment)) == 0 ? c_DummyChar : 3279((syntaxFlags & UriSyntaxFlags.MayHaveQuery) != 0) ? '?' : '#'; 3294if (((cF & Flags.AuthorityFound) != 0) && ((syntaxFlags & UriSyntaxFlags.PathIsRooted) != 0) 3305(((syntaxFlags & (UriSyntaxFlags.CompressPath | UriSyntaxFlags.ConvertPathSlashes)) != 0) || 3306(syntaxFlags & UriSyntaxFlags.UnEscapeDotsAndSlashes) != 0))) 3308if (((result & Check.DotSlashEscaped) != 0) && (syntaxFlags & UriSyntaxFlags.UnEscapeDotsAndSlashes) != 0) 3314if (((syntaxFlags & (UriSyntaxFlags.ConvertPathSlashes)) != 0) && (result & Check.BackslashInPath) != 0) 3320if (((syntaxFlags & (UriSyntaxFlags.CompressPath)) != 0) && ((cF & Flags.E_PathNotCanonical) != 0 || 3377Check result = CheckCanonical(inputStr.AsSpan(idx, length - idx), (syntaxFlags & (UriSyntaxFlags.MayHaveFragment)) != 0 ? '#' : c_EOL, out int charsChecked); 3443UriSyntaxFlags syntaxFlags = _syntax.Flags; 3489int pathLength = (flags & Flags.ImplicitFile) != 0 || (syntaxFlags & UriSyntaxFlags.MayHaveQuery) == 0 3505int fragmentOffset = (syntaxFlags & UriSyntaxFlags.MayHaveFragment) == 0 3693private int CheckAuthorityHelper(ReadOnlySpan<char> str, int startOffset, out ParsingError err, ref Flags flags, UriSyntaxFlags syntaxFlags, ref string? newHost) 3712if ((uint)startOffset >= (uint)str.Length || ((ch = str[startOffset]) == '/' || (ch == '\\' && (syntaxFlags & UriSyntaxFlags.FileLikeUri) != 0) || ch == '#' || ch == '?')) 3714if ((syntaxFlags & UriSyntaxFlags.AllowEmptyHost) != 0) 3731if ((syntaxFlags & UriSyntaxFlags.MayHaveUserInfo) != 0) 3766if (ch == '[' && (syntaxFlags & UriSyntaxFlags.AllowIPv6Host) != 0 && IPv6AddressHelper.IsValid(str.Slice(i), out hostLength)) 3787else if (char.IsAsciiDigit(ch) && (syntaxFlags & UriSyntaxFlags.AllowIPv4Host) != 0 && 3788IPv4AddressHelper.IsValid(str.Slice(i), out hostLength, allowIPv6: false, StaticNotAny(flags, Flags.ImplicitFile), (syntaxFlags & UriSyntaxFlags.V1_UnknownUri) != 0)) 3797else if ((syntaxFlags & (UriSyntaxFlags.AllowDnsHost | UriSyntaxFlags.AllowIriParsing)) == UriSyntaxFlags.AllowDnsHost && 3811else if (((syntaxFlags & UriSyntaxFlags.AllowDnsHost) != 0) && 3812(hasUnicode || (syntaxFlags & UriSyntaxFlags.AllowIdn) != 0) && 3836else if ((syntaxFlags & UriSyntaxFlags.AllowUncHost) != 0) 3857if (hostDelimiter == '\\' && (flags & Flags.HostTypeMask) != Flags.HostNotParsed && (syntaxFlags & UriSyntaxFlags.FileLikeUri) == 0) 3859if ((syntaxFlags & UriSyntaxFlags.V1_UnknownUri) != 0) 3872if ((syntaxFlags & UriSyntaxFlags.MayHavePort) != 0) 3892if ((syntaxFlags & (UriSyntaxFlags.AllowAnyOtherHost | UriSyntaxFlags.V1_UnknownUri)) == UriSyntaxFlags.AllowAnyOtherHost) 3908if ((syntaxFlags & UriSyntaxFlags.AllowAnyOtherHost) != 0) 3937if ((syntaxFlags & UriSyntaxFlags.AllowAnyOtherHost) != 0) 3964if ((syntaxFlags & UriSyntaxFlags.V1_UnknownUri) != 0) 4004else if ((syntaxFlags & (UriSyntaxFlags.MustHaveAuthority | UriSyntaxFlags.MailToLikeUri)) != 0) 4099else if (delim == '?' && c == '#' && (_syntax != null && _syntax.InFact(UriSyntaxFlags.MayHaveFragment))) 4106if (IsImplicitFile || (_syntax != null && !_syntax.InFact(UriSyntaxFlags.MayHaveQuery) && delim != c_EOL)) 4119if (IsImplicitFile || (_syntax != null && !_syntax.InFact(UriSyntaxFlags.MayHaveFragment))) 4228if (_syntax.InFact(UriSyntaxFlags.UnEscapeDotsAndSlashes) && InFact(Flags.PathNotCanonical) 4231UnescapePathSlashesAndDots(ref dest, start, _syntax.InFact(UriSyntaxFlags.ConvertPathSlashes)); 4260if (!OperatingSystem.IsWindows() && InFact(Flags.BackslashInPath) && _syntax.NotAny(UriSyntaxFlags.ConvertPathSlashes) && _syntax.InFact(UriSyntaxFlags.FileLikeUri) && !IsImplicitFile) 4283if (_syntax.InFact(UriSyntaxFlags.UnEscapeDotsAndSlashes) && InFact(Flags.PathNotCanonical) 4286UnescapePathSlashesAndDots(ref dest, start, _syntax.InFact(UriSyntaxFlags.ConvertPathSlashes)); 4413syntax.InFact(UriSyntaxFlags.ConvertPathSlashes), 4414syntax.InFact(UriSyntaxFlags.CanonicalizeAsFilePath)); 4421syntax.InFact(UriSyntaxFlags.ConvertPathSlashes), 4422syntax.InFact(UriSyntaxFlags.CanonicalizeAsFilePath)); 4509bool convBackSlashes = basePart.Syntax.InFact(UriSyntaxFlags.ConvertPathSlashes); 4563c1 = basePart.Syntax.InFact(UriSyntaxFlags.MayHaveQuery) ? '?' : c_DummyChar; 4566char c2 = (!basePart.IsImplicitFile && basePart.Syntax.InFact(UriSyntaxFlags.MayHaveFragment)) ? '#' :
System\UriBuilder.cs (3)
352schemeDelimiter = syntax.InFact(UriSyntaxFlags.MustHaveAuthority) 353|| (host.Length != 0 && syntax.NotAny(UriSyntaxFlags.MailToLikeUri) && syntax.InFact(UriSyntaxFlags.OptionalAuthority))
System\UriExt.cs (5)
746if (relativeStr[0] == '#' && !baseUri.IsImplicitFile && baseUri.Syntax!.InFact(UriSyntaxFlags.MayHaveFragment)) 754if (relativeStr[0] == '?' && !baseUri.IsImplicitFile && baseUri.Syntax!.InFact(UriSyntaxFlags.MayHaveQuery)) 773else if (baseUri.Syntax!.InFact(UriSyntaxFlags.AllowDOSPath)) 778prefix = baseUri.Syntax.InFact(UriSyntaxFlags.PathIsRooted) ? ":///" : "://"; 780prefix = baseUri.Syntax.InFact(UriSyntaxFlags.PathIsRooted) ? ":/" : ":";
System\UriScheme.cs (3)
33private const UriSyntaxFlags SchemeOnlyFlags = UriSyntaxFlags.MayHavePath; 194return syntax != null && syntax.NotAny(UriSyntaxFlags.V1_UnknownUri);
System\UriSyntax.cs (168)
99private UriSyntaxFlags _flags; 112internal BuiltInUriParser(string lwrCaseScheme, int defaultPort, UriSyntaxFlags syntaxFlags) 113: base(syntaxFlags | UriSyntaxFlags.SimpleUserSyntax) 120internal UriSyntaxFlags Flags 128internal bool NotAny(UriSyntaxFlags flags) 134internal bool InFact(UriSyntaxFlags flags) 140internal bool IsAllSet(UriSyntaxFlags flags) 149internal UriParser(UriSyntaxFlags flags) 162syntax._flags &= ~UriSyntaxFlags.V1_UnknownUri; 221return InFact(UriSyntaxFlags.SimpleUserSyntax); 240_flags |= UriSyntaxFlags.SimpleUserSyntax; 293private const UriSyntaxFlags UnknownV1SyntaxFlags = 294UriSyntaxFlags.V1_UnknownUri | // This flag must be always set here 295UriSyntaxFlags.OptionalAuthority | 297UriSyntaxFlags.MayHaveUserInfo | 298UriSyntaxFlags.MayHavePort | 299UriSyntaxFlags.MayHavePath | 300UriSyntaxFlags.MayHaveQuery | 301UriSyntaxFlags.MayHaveFragment | 303UriSyntaxFlags.AllowEmptyHost | 304UriSyntaxFlags.AllowUncHost | // V1 compat 305UriSyntaxFlags.AllowAnInternetHost | 306UriSyntaxFlags.PathIsRooted | 307UriSyntaxFlags.AllowDOSPath | // V1 compat, actually we should not parse DOS file out of an unknown scheme 308UriSyntaxFlags.ConvertPathSlashes | // V1 compat, it will always convert backslashes 309UriSyntaxFlags.CompressPath | // V1 compat, it will always compress path even for non hierarchical Uris 310UriSyntaxFlags.AllowIdn | 311UriSyntaxFlags.AllowIriParsing; 313private const UriSyntaxFlags HttpSyntaxFlags = 314UriSyntaxFlags.MustHaveAuthority | 316UriSyntaxFlags.MayHaveUserInfo | 317UriSyntaxFlags.MayHavePort | 318UriSyntaxFlags.MayHavePath | 319UriSyntaxFlags.MayHaveQuery | 320UriSyntaxFlags.MayHaveFragment | 322UriSyntaxFlags.AllowUncHost | // V1 compat 323UriSyntaxFlags.AllowAnInternetHost | 325UriSyntaxFlags.PathIsRooted | 327UriSyntaxFlags.ConvertPathSlashes | 328UriSyntaxFlags.CompressPath | 329UriSyntaxFlags.CanonicalizeAsFilePath | 330UriSyntaxFlags.AllowIdn | 331UriSyntaxFlags.AllowIriParsing; 333private const UriSyntaxFlags FtpSyntaxFlags = 334UriSyntaxFlags.MustHaveAuthority | 336UriSyntaxFlags.MayHaveUserInfo | 337UriSyntaxFlags.MayHavePort | 338UriSyntaxFlags.MayHavePath | 339UriSyntaxFlags.MayHaveFragment | 341UriSyntaxFlags.AllowUncHost | // V1 compat 342UriSyntaxFlags.AllowAnInternetHost | 344UriSyntaxFlags.PathIsRooted | 346UriSyntaxFlags.ConvertPathSlashes | 347UriSyntaxFlags.CompressPath | 348UriSyntaxFlags.CanonicalizeAsFilePath | 349UriSyntaxFlags.AllowIdn | 350UriSyntaxFlags.AllowIriParsing; 352private const UriSyntaxFlags FileSyntaxFlags = 353UriSyntaxFlags.MustHaveAuthority | 355UriSyntaxFlags.AllowEmptyHost | 356UriSyntaxFlags.AllowUncHost | 357UriSyntaxFlags.AllowAnInternetHost | 359UriSyntaxFlags.MayHavePath | 360UriSyntaxFlags.MayHaveFragment | 361UriSyntaxFlags.MayHaveQuery | 363UriSyntaxFlags.FileLikeUri | 365UriSyntaxFlags.PathIsRooted | 366UriSyntaxFlags.AllowDOSPath | 368UriSyntaxFlags.ConvertPathSlashes | 369UriSyntaxFlags.CompressPath | 370UriSyntaxFlags.CanonicalizeAsFilePath | 371UriSyntaxFlags.UnEscapeDotsAndSlashes | 372UriSyntaxFlags.AllowIdn | 373UriSyntaxFlags.AllowIriParsing; 375private const UriSyntaxFlags UnixFileSyntaxFlags = 376FileSyntaxFlags & ~UriSyntaxFlags.ConvertPathSlashes; 378private const UriSyntaxFlags VsmacrosSyntaxFlags = 379UriSyntaxFlags.MustHaveAuthority | 381UriSyntaxFlags.AllowEmptyHost | 382UriSyntaxFlags.AllowUncHost | 383UriSyntaxFlags.AllowAnInternetHost | 385UriSyntaxFlags.MayHavePath | 386UriSyntaxFlags.MayHaveFragment | 388UriSyntaxFlags.FileLikeUri | 390UriSyntaxFlags.AllowDOSPath | 391UriSyntaxFlags.ConvertPathSlashes | 392UriSyntaxFlags.CompressPath | 393UriSyntaxFlags.CanonicalizeAsFilePath | 394UriSyntaxFlags.UnEscapeDotsAndSlashes | 395UriSyntaxFlags.AllowIdn | 396UriSyntaxFlags.AllowIriParsing; 398private const UriSyntaxFlags GopherSyntaxFlags = 399UriSyntaxFlags.MustHaveAuthority | 401UriSyntaxFlags.MayHaveUserInfo | 402UriSyntaxFlags.MayHavePort | 403UriSyntaxFlags.MayHavePath | 404UriSyntaxFlags.MayHaveFragment | 406UriSyntaxFlags.AllowUncHost | // V1 compat 407UriSyntaxFlags.AllowAnInternetHost | 409UriSyntaxFlags.PathIsRooted | 410UriSyntaxFlags.AllowIdn | 411UriSyntaxFlags.AllowIriParsing; 414private const UriSyntaxFlags NewsSyntaxFlags = 415UriSyntaxFlags.MayHavePath | 416UriSyntaxFlags.MayHaveFragment | 417UriSyntaxFlags.AllowIriParsing; 419private const UriSyntaxFlags NntpSyntaxFlags = 420UriSyntaxFlags.MustHaveAuthority | 422UriSyntaxFlags.MayHaveUserInfo | 423UriSyntaxFlags.MayHavePort | 424UriSyntaxFlags.MayHavePath | 425UriSyntaxFlags.MayHaveFragment | 427UriSyntaxFlags.AllowUncHost | // V1 compat 428UriSyntaxFlags.AllowAnInternetHost | 430UriSyntaxFlags.PathIsRooted | 431UriSyntaxFlags.AllowIdn | 432UriSyntaxFlags.AllowIriParsing; 435private const UriSyntaxFlags TelnetSyntaxFlags = 436UriSyntaxFlags.MustHaveAuthority | 438UriSyntaxFlags.MayHaveUserInfo | 439UriSyntaxFlags.MayHavePort | 440UriSyntaxFlags.MayHavePath | 441UriSyntaxFlags.MayHaveFragment | 443UriSyntaxFlags.AllowUncHost | // V1 compat 444UriSyntaxFlags.AllowAnInternetHost | 446UriSyntaxFlags.PathIsRooted | 447UriSyntaxFlags.AllowIdn | 448UriSyntaxFlags.AllowIriParsing; 451private const UriSyntaxFlags LdapSyntaxFlags = 452UriSyntaxFlags.MustHaveAuthority | 454UriSyntaxFlags.AllowEmptyHost | 455UriSyntaxFlags.AllowUncHost | // V1 compat 456UriSyntaxFlags.AllowAnInternetHost | 458UriSyntaxFlags.MayHaveUserInfo | 459UriSyntaxFlags.MayHavePort | 460UriSyntaxFlags.MayHavePath | 461UriSyntaxFlags.MayHaveQuery | 462UriSyntaxFlags.MayHaveFragment | 464UriSyntaxFlags.PathIsRooted | 465UriSyntaxFlags.AllowIdn | 466UriSyntaxFlags.AllowIriParsing; 469private const UriSyntaxFlags MailtoSyntaxFlags = 471UriSyntaxFlags.AllowEmptyHost | 472UriSyntaxFlags.AllowUncHost | // V1 compat 473UriSyntaxFlags.AllowAnInternetHost | 475UriSyntaxFlags.MayHaveUserInfo | 476UriSyntaxFlags.MayHavePort | 477UriSyntaxFlags.MayHavePath | 478UriSyntaxFlags.MayHaveFragment | 479UriSyntaxFlags.MayHaveQuery | //to maintain compat 481UriSyntaxFlags.MailToLikeUri | 482UriSyntaxFlags.AllowIdn | 483UriSyntaxFlags.AllowIriParsing; 487private const UriSyntaxFlags NetPipeSyntaxFlags = 488UriSyntaxFlags.MustHaveAuthority | 489UriSyntaxFlags.MayHavePath | 490UriSyntaxFlags.MayHaveQuery | 491UriSyntaxFlags.MayHaveFragment | 492UriSyntaxFlags.AllowAnInternetHost | 493UriSyntaxFlags.PathIsRooted | 494UriSyntaxFlags.ConvertPathSlashes | 495UriSyntaxFlags.CompressPath | 496UriSyntaxFlags.CanonicalizeAsFilePath | 497UriSyntaxFlags.UnEscapeDotsAndSlashes | 498UriSyntaxFlags.AllowIdn | 499UriSyntaxFlags.AllowIriParsing; 502private const UriSyntaxFlags NetTcpSyntaxFlags = NetPipeSyntaxFlags | UriSyntaxFlags.MayHavePort;