Esempio n. 1
0
        protected virtual void ScanHeaderFieldValue(HeaderBuffer headerBuffer, string decapitalizedFieldName, int startOffset)
        {
            // argument checks
            Debug.Assert(headerBuffer != null);

            string value;

            switch (decapitalizedFieldName)
            {
            case "content-length":
                value = headerBuffer.ReadFieldASCIIValue(decapitalize: false);
                this.ContentLength = HeaderBuffer.ParseHeaderFieldValueAsLong(value);
                break;

            case "transfer-encoding":
                value = headerBuffer.ReadFieldASCIIValue(decapitalize: true);
                if (HeaderBuffer.IsChunkedSpecified(value) == false)
                {
                    throw MessageBuffer.CreateBadRequestException();
                }
                this.ContentLength = -1;                                // -1 means 'chunked'
                break;

            default:
                // just skip
                headerBuffer.SkipField();
                break;
            }
        }