Beispiel #1
0
 public void OnStartLine(Http.Method method, Http.Version version, ReadOnlySpan <byte> target, ReadOnlySpan <byte> path, ReadOnlySpan <byte> query, ReadOnlySpan <byte> customMethod, bool pathEncoded)
 {
     //Method = method;
     //Version = version;
     //Path = PrimitiveEncoder.DecodeAscii(path);
     //Query = PrimitiveEncoder.DecodeAscii(query);
     //Target = PrimitiveEncoder.DecodeAscii(target);
 }
Beispiel #2
0
 public void OnStartLine(Http.Method method, Http.Version version, ReadOnlySpan <byte> target, ReadOnlySpan <byte> path, ReadOnlySpan <byte> query, ReadOnlySpan <byte> customMethod, bool pathEncoded)
 {
     Method  = method;
     Version = version;
     Path    = Encodings.Ascii.ToUtf16String(path);
     Query   = Encodings.Ascii.ToUtf16String(query);
     Target  = Encodings.Ascii.ToUtf16String(target);
 }
Beispiel #3
0
 public void OnStartLine(Http.Method method, Http.Version version, ReadOnlySpan <byte> target, ReadOnlySpan <byte> path, ReadOnlySpan <byte> query, ReadOnlySpan <byte> customMethod, bool pathEncoded)
 {
     Method      = method != Http.Method.Custom ? method.ToString().ToUpper() : Encodings.Ascii.ToUtf16String(customMethod);
     Version     = ToString(version);
     RawTarget   = Encodings.Ascii.ToUtf16String(target);
     RawPath     = Encodings.Ascii.ToUtf16String(path);
     Query       = Encodings.Ascii.ToUtf16String(query);
     PathEncoded = pathEncoded;
 }
Beispiel #4
0
 public void OnStartLine(Http.Method method, Http.Version version, ReadOnlySpan <byte> target, ReadOnlySpan <byte> path, ReadOnlySpan <byte> query, ReadOnlySpan <byte> customMethod, bool pathEncoded)
 {
     _method       = method;
     _version      = version;
     _target       = target.ToArray();
     _path         = path.ToArray();
     _query        = query.ToArray();
     _customMethod = customMethod.ToArray();
 }
Beispiel #5
0
 public void OnStartLine(Http.Method method, Http.Version version, ReadOnlySpan <byte> target, ReadOnlySpan <byte> path, ReadOnlySpan <byte> query, ReadOnlySpan <byte> customMethod, bool pathEncoded)
 {
     Method      = method != Http.Method.Custom ? method.ToString().ToUpper() : PrimitiveEncoder.DecodeAscii(customMethod);
     Version     = ToString(version);
     RawTarget   = PrimitiveEncoder.DecodeAscii(target);
     RawPath     = PrimitiveEncoder.DecodeAscii(path);
     Query       = PrimitiveEncoder.DecodeAscii(query);
     PathEncoded = pathEncoded;
 }
Beispiel #6
0
            private string ToString(Http.Version version)
            {
                switch (version)
                {
                case Http.Version.Http10: return("HTTP/1.0");

                case Http.Version.Http11: return("HTTP/1.1");

                case Http.Version.Unknown: return("Unknown");

                default: throw new NotImplementedException();
                }
            }
Beispiel #7
0
        protected static void WriteCommonHeaders <TFormatter>(
            ref TFormatter formatter,
            Http.Version version,
            int statuCode,
            string reasonCode)
            where TFormatter : ITextOutput
        {
            var currentTime = DateTime.UtcNow;

            formatter.AppendHttpStatusLine(version, statuCode, new Utf8Span(reasonCode));
            formatter.Append("Transfer-Encoding : chunked\r\n");
            formatter.Append("Server : .NET Core Sample Server\r\n");
            formatter.Format("Date : {0:R}\r\n", DateTime.UtcNow);
        }
Beispiel #8
0
        public static string VersionToString(Http.Version httpVersion)
        {
            switch (httpVersion)
            {
            case Http.Version.Http10:
                return(Http10Version);

            case Http.Version.Http11:
                return(Http11Version);

            default:
                return(null);
            }
        }
Beispiel #9
0
        public static unsafe bool GetKnownVersion(this Span <byte> span, out Http.Version knownVersion, out byte length)
        {
            fixed(byte *data = &MemoryMarshal.GetReference(span))
            {
                knownVersion = GetKnownVersion(data, span.Length);
                if (knownVersion != Http.Version.Unknown)
                {
                    length = sizeof(ulong);
                    return(true);
                }

                length = 0;
                return(false);
            }
        }
        public static unsafe bool GetKnownVersion(this Span <byte> span, out Http.Version knownVersion, out byte length)
        {
            fixed(byte *data = &span.DangerousGetPinnableReference())
            {
                knownVersion = GetKnownVersion(data, span.Length);
                if (knownVersion != Http.Version.Unknown)
                {
                    length = sizeof(ulong);
                    return(true);
                }

                length = 0;
                return(false);
            }
        }
Beispiel #11
0
 public void OnStatusLine(Http.Version version, ushort statusCode, ReadOnlySpan <byte> status)
 {
     StatusCode = statusCode;
 }