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

letsencrypt / boulder / 10503
66%

Build:
DEFAULT BRANCH: master
Ran 23 Apr 2019 07:05PM UTC
Jobs 1
Files 92
Run time 9s
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

23 Apr 2019 06:56PM UTC coverage: 63.043% (-0.005%) from 63.048%
10503

push

travis-ci

web-flow
va: add specific error for HTTP-01 to HTTP/2 server. (#4172)

In practice it seems the only way to add a specific error for when an initial HTTP-01 challenge request is made to an HTTP/2 server mis-configured on `:80` is with a regex on the error string.

The error returned from the stdlib `http.Client` for HTTP to an HTTP/2 server is just an `errors.ErrorString` instance without any context (once you peel it out of the wrapping `url.Error`):
>  Err:(*errors.errorString)(0xc420609bf0)}] errStr=[Get http://example.com/.well-known/acme-challenge/xxxxxxx: net/http: HTTP/1.x transport connection broken: malformed HTTP response "\x00\x00\x12\x04\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x80\x00\x04\x00\x01\x00\x00\x00\x05\x00\xff\xff\xff\x00\x00\x04\b\x00\x00\x00\x00\x00\u007f\xff\x00\x00\x00\x00\b\a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01"]

Even directly in the stdlib code at the place in `http/response.go` that generates the error it's using a `&badStringError{}` and just putting the byte string that `textproto` read into it.

To detect this case in `detailedError` I added a pre-compiled regex that will match the net/http malformed HTTP response error for raw bytes matching an arbitrarily sized HTTP/2 SETTINGS frame. Per RFC "A SETTINGS frame MUST be sent by both endpoints at the start of a connection" and so this seems like a fairly reliable indicator of an unexpected HTTP/2 response in an HTTP/1.1 context.

Thanks to @mnordhoff for the detailed notes (and RFC refs) in #3416 It made this a lot easier!

Resolves #3416.

11035 of 17504 relevant lines covered (63.04%)

0.7 hits per line

Jobs
ID Job ID Ran Files Coverage
6 10503.6 (RUN="coverage" CONTAINER="netaccess") 23 Apr 2019 07:05PM UTC 0
63.04
Travis Job 10503.6
Source Files on build 10503
Detailed source file information is not available for this build.
  • Back to Repo
  • Travis Build #10503
  • e050820f on github
  • Prev Build on master (#10499)
  • Next Build on master (#10505)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc