Esempio n. 1
0
 public static unsafe bool GetKnownProtoScheme(this Span <byte> span, out ProtoScheme knownScheme)
 {
     fixed(byte *data = span)
     {
         return(GetKnownProtoScheme(data, span.Length, out knownScheme));
     }
 }
Esempio n. 2
0
        public static string SchemeToString(ProtoScheme scheme)
        {
            switch (scheme)
            {
            case ProtoScheme.Proto:
                return(ProtoUriScheme);

            case ProtoScheme.Protos:
                return(ProtosUriScheme);

            default:
                return(null);
            }
        }
Esempio n. 3
0
        private static unsafe bool GetKnownProtoScheme(byte *location, int length, out ProtoScheme knownScheme)
        {
            if (length >= sizeof(ulong))
            {
                var scheme = *(ulong *)location;
                if ((scheme & _mask7Chars) == _httpSchemeLong)
                {
                    knownScheme = ProtoScheme.Proto;
                    return(true);
                }

                if (scheme == _httpsSchemeLong)
                {
                    knownScheme = ProtoScheme.Protos;
                    return(true);
                }
            }
            knownScheme = ProtoScheme.Unknown;
            return(false);
        }