guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] gnu: Add erlang.


From: Andy Wingo
Subject: Re: [PATCH] gnu: Add erlang.
Date: Mon, 04 Jan 2016 12:44:24 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

On Mon 04 Jan 2016 06:20, Steve Sprang <address@hidden> writes:

> From http://www.erlang.org/download/otp_src_18.2.1.tar.gz...
> ERROR: Bad qstring header component: kMSMAn68110840

This means the server is emitting bad HTTP.  If I connect with:

   GET /download/otp_src_18.2.1.tar.gz HTTP/1.1
   Host: www.erlang.org
   Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
   User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/601.1 (KHTML, like 
Gecko) Version/8.0 Safari/601.1 Epiphany/3.16.3
   Accept-Encoding: gzip, deflate
   Accept-Language: en
   Connection: Keep-Alive

The server responds with:

   HTTP/1.1 200 OK
   Server: inets/5.7.1
   Date: Mon, 04 Jan 2016 11:32:30 GMT
   Content-Type: text/plain;  charset=utf-8
   Etag: kMSMAn68110840
   Content-Length: 68110840
   Last-Modified: Fri, 18 Dec 2015 11:00:38 GMT
   Connection:close

   ...

The Etag value is invalid:

  https://tools.ietf.org/html/rfc7232#section-2.3

We could relax Guile's etag parser to assume that an etag not starting
with either W/ or " is a strong etag without quotes.  To do that you
would patch guile's http.scm to say:

(define (parse-entity-tag val)
  (cond
   ((string-prefix? "W/" val) (cons (parse-qstring val 2) #f))
   ((string-prefix? "\"" val) (cons (parse-qstring val) #t))
   (else (cons val #t))))

Considering that this error has come up a few times and that the less
strict parser doesn't change the Guile programming interface or endanger
the web in any significant way, I think changing Guile's HTTP parser
would be OK.

Thoughts?

Andy



reply via email to

[Prev in Thread] Current Thread [Next in Thread]