chiark / gitweb /
dgit: Cope if the archive server sends an HTTP redirect
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 8 Jul 2017 17:05:36 +0000 (18:05 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 8 Jul 2017 17:05:38 +0000 (18:05 +0100)
commiteebba5982cca5be0436693ca3334fb0b17c4f88a
tree8df3af2f3b50ae2fc495bff1487f9eae33dad4fc
parent965e601bb3231f2a3e97d6faf04febc61cec8ba8
dgit: Cope if the archive server sends an HTTP redirect

We achieve this by passing -L to curl.

We also pass an appropriate-seeming --proto-redir, because the curl
manual is not entirely reassuring that following redirections with the
default configuration is safe.

This finally fixes #867185/#867309.  What happens there is that curl
gets a redirect, along with an HTML error document.  curl then exits
with status zero, effectively pretending that the error document is
the resource which was requested.  dgit notices that something is
wrong because the file does not have the expected cryptographic
checksum.

I suspect that there are other download problems which would give a
similar effect.  Sadly the curl manpage doesn't seem to suggest a way
to avoid this.  At least, dgit will never carry on in such a
situation, since it insists that the file has the right hash.  And if
it does have the right hash we don't really care how it was obtained.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
debian/changelog
dgit