path: tests/fixtures/llhttp/request/invalid-obs-fold-after-chunked-value-chunk-header-not-terminated-by-crlf-lenient.yml
name: Invalid OBS fold after chunked value / Chunk Header Not Terminated By CRLF (lenient)
checked: true
source:
  path: test/request/transfer-encoding.md
  line: 1025
meta:
  type: request-lenient-optional-lf-after-cr
input:
- GET / HTTP/1.1
- 'Host: a'
- 'Connection: close '
- 'Transfer-Encoding: chunked '
- ''
- 6\r\r;ABCD
- '33'
- E
- '0'
- ''
- 'GET / HTTP/1.1 '
- 'Host: a'
- 'Content-Length: 5'
- '0'
- ''
- ''
llhttp:
- off=0 message begin
- off=0 len=3 span[method]="GET"
- off=3 method complete
- off=4 len=1 span[url]="/"
- off=6 url complete
- off=6 len=4 span[protocol]="HTTP"
- off=10 protocol complete
- off=11 len=3 span[version]="1.1"
- off=14 version complete
- off=16 len=4 span[header_field]="Host"
- off=21 header_field complete
- off=22 len=1 span[header_value]="a"
- off=25 header_value complete
- off=25 len=10 span[header_field]="Connection"
- off=36 header_field complete
- off=37 len=6 span[header_value]="close "
- off=45 header_value complete
- off=45 len=17 span[header_field]="Transfer-Encoding"
- off=63 header_field complete
- off=64 len=8 span[header_value]="chunked "
- off=74 header_value complete
- off=76 headers complete method=1 v=1/1 flags=20a content_length=0
- off=78 chunk header len=6
- off=78 len=1 span[body]=cr
- off=79 len=5 span[body]=";ABCD"
- off=86 chunk complete
- off=90 chunk header len=51
- off=90 len=1 span[body]="E"
- off=91 len=1 span[body]=cr
- off=92 len=1 span[body]=lf
- off=93 len=1 span[body]="0"
- off=94 len=1 span[body]=cr
- off=95 len=1 span[body]=lf
- off=96 len=1 span[body]=cr
- off=97 len=1 span[body]=lf
- off=98 len=15 span[body]="GET / HTTP/1.1 "
- off=113 len=1 span[body]=cr
- off=114 len=1 span[body]=lf
- 'off=115 len=7 span[body]="Host: a"'
- off=122 len=1 span[body]=cr
- off=123 len=1 span[body]=lf
- 'off=124 len=17 span[body]="Content-Length: 5"'
- off=143 chunk complete
- off=146 chunk header len=0
- off=148 chunk complete
- off=148 message complete
output:
- offset: 0
  type: request
  payload: null
- offset: 0
  type: begin
  payload: null
- offset: 0
  type: method
  payload: GET
- offset: 4
  type: url
  payload: /
- offset: 6
  type: protocol
  payload: HTTP
- offset: 11
  type: version
  payload: '1.1'
- offset: 16
  type: header_name
  payload: Host
- offset: 22
  type: header_value
  payload: a
- offset: 25
  type: header_name
  payload: Connection
- offset: 37
  type: header_value
  payload: close
- offset: 45
  type: header_name
  payload: Transfer-Encoding
- offset: 64
  type: header_value
  payload: chunked
- offset: 76
  type: headers
  payload:
    method: GET
    status: null
    url: /
    protocol: HTTP
    version: '1.1'
    body: chunked
- offset: 76
  type: error
  payload:
    code: UNEXPECTED_CHARACTER
    description: Expected CRLF
