• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

elixir-mint / mint
91%
main: 90%

Build:
Build:
LAST BUILD BRANCH: fix/http2-validate-request-fields
DEFAULT BRANCH: main
Repo Added 11 Jun 2022 07:10AM UTC
Token xUOJjt5H7KcTvx6ikZQ7qWuMslrGKsjIE regen
Build 412 Last
Files 22
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH http1-empty-te
branch: http1-empty-te
CHANGE BRANCH
x
Reset
Sync Branches
  • http1-empty-te
  • al/1.18
  • al/bump-ci
  • al/ci
  • al/client-settings
  • al/deps
  • al/elixir-1.10
  • al/elixir-1.11+
  • al/fix-leak
  • al/fix-tests
  • al/http2-logs
  • al/improve-defguard
  • al/modernize-ci
  • al/stream-docs
  • al/update-ci-versions
  • al/updates
  • allow-not-validating-target
  • allow_302_for_twitter_integration_test
  • andrea/code-coverage
  • andrea/dialyzer
  • andrea/fix-guard
  • andrea/new-ci-versions
  • apply-http2-client-settings
  • check-http2-content-length
  • chore/replace-deprecated-xref-exclude
  • clamp-tunnel-timeout
  • close_sockets_on_error
  • comp-time-optimization
  • configurable-test-ports
  • connect-tunnel-fixes
  • connection-docs-ref
  • contributing-and-testing-housekeeping
  • dialyzer-without-ignore-file
  • docs-for-open
  • dont-close-socket-on-recv-timeout
  • ericmj/deprecate-read-write
  • ericmj/fix-1xx-informational-response
  • ericmj/http2-connection-window-size
  • ericmj/http2-larger-default-windows
  • ericmj/inet4-option
  • ericmj/local-h2c-integration-tests
  • ericmj/support-elixir-1.12
  • ericmj/update-ubuntu
  • fix-cannot-build-docker-image-using-podman-compose
  • fix-dialyzer
  • fix-http1-tests-not-tagged-correctly
  • fix-incorrect-ci-badge
  • fix-warnings
  • fix/446-proxy-host-header
  • fix/http10-connect-tunnel
  • fix/http2-validate-request-fields
  • fix/humize_error_code_custom_error
  • forward-proxy-mode
  • fuzz-http1-mid-scenario-requests
  • fuzz-http1-transfer-codings
  • fuzz-http2-close-listen-socket
  • fuzz-http2-connect-tunnel
  • fuzz-http2-connection-window
  • http-fuzz-properties
  • http1-1xx-close
  • http1-followups
  • http1-header-parsing
  • http1-line-size-limit
  • http1-pipelining
  • http1-reason-phrase
  • http1-rfc9112-body-rules
  • http1-te-parameters
  • http1-upgrade-pipelined
  • http2-connect-204
  • http2-connect-target
  • http2-followups
  • http2-frame-validation
  • http2-header-block-bound
  • http2-header-list-size-docs
  • http2-push-origin-docs
  • http2-push-target-validation
  • http2-remove-infinity-branches
  • http2-response-semantics
  • http2-server-push
  • https-tunnel-proxies
  • ignore-http2-window-update-on-closed-streams
  • ip-address-match-fun
  • ipv6-host-header
  • jv-default-store
  • jv-elixir-1-19
  • keep-http1-state-after-pipelined-responses
  • main
  • next_body_chunk
  • np/export-error-types
  • optimize-http/2-request-creation
  • patch-3
  • preserve_header_case
  • pvthuyen/add-support-for-cacerts-get
  • refs/heads/main
  • refs/pull/399/merge
  • refs/pull/407/merge
  • refs/pull/500/merge
  • return-responses-in-parse-order
  • rewrite-contributing-and-testing-doc
  • run-ci-against-erlang-27.1
  • stream-http1-headers
  • test-followups
  • test-http2-interim-no-101
  • tunnel-target-identity
  • unnecessary-rst-stream-2
  • unsafe-proxy-opts
  • update-deps
  • use-hpax-protocol-resize
  • use_local_http_bin_in_all_tests
  • v1.10
  • validate-http2-response-headers
  • whatyouhide/issue311
  • wm-decompression
  • wm-docker-compose
  • wm-recv-response
  • wrap-tunnel-errors

28 Sep 2026 02:51PM UTC coverage: 90.514% (+0.05%) from 90.46%
33d12943b099acaa8f3327a621a494510fc5b82b-PR-526

Pull #526

github

ericmj
Treat an empty Transfer-Encoding list as no transfer codings

A Transfer-Encoding field with no list elements, such as an empty value
or ",", failed the response with :empty_token_list and closed the
connection. For a response to HEAD this happened before the rule that
such a response has no body, and a comma-only field between two
nonempty Transfer-Encoding fields failed the response instead of being
ignored.

RFC 9110 5.6.1 allows a #transfer-coding list with zero elements, so
such a field now adds no transfer coding when the framing is chosen. A
response with only an empty Transfer-Encoding and no Content-Length has
no framing, so its body is read until the connection closes (RFC 9112
6.3). The field still counts as present: with Content-Length it's an
error, and it makes an HTTP/1.0 response, including a 1xx one, close
the connection (RFC 9112 6.1).

Transfer-Encoding values are parsed only where they decide the framing,
combined into one value as on the request side, so a malformed value no
longer fails a response to HEAD, a 204 or 304 response, or a 2xx
response to CONNECT, whose Transfer-Encoding RFC 9110 9.3.6 says to
ignore. Where it does fail, the error comes after the :headers event
(with :stream_headers the field itself can be emitted first) and not
while the header section is incomplete, other header errors in the same
section are reported instead of it, and with Content-Length the error is
:transfer_encoding_and_content_length instead of {:invalid_token_list,
value}.

On the request side, a Transfer-Encoding field with no codings passed to
request/5 with a streamed body counts as no codings: when chunked is
appended to such a last field it replaces the empty value.
Pull Request #526: Treat an empty Transfer-Encoding list as no transfer codings

9 of 9 new or added lines in 2 files covered. (100.0%)

1 existing line in 1 file now uncovered.

1813 of 2003 relevant lines covered (90.51%)

712.93 hits per line

Relevant lines Covered
Build:
Build:
2003 RELEVANT LINES 1813 COVERED LINES
712.93 HITS PER LINE
Source Files on http1-empty-te
  • Tree
  • List 22
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
33d12943... http1-empty-te Treat an empty Transfer-Encoding list as no transfer codings A Transfer-Encoding field with no list elements, such as an empty value or ",", failed the response with :empty_token_list and closed the connection. For a response to HEAD this happene... Pull #526 16 Oct 2026 01:05PM UTC ericmj github
90.51
See All Builds (344)

Badge your Repo: mint

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

Refresh
  • Settings
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc