substitute: 'http-multiple-get' processes each request only once.

Fixes <https://bugs.gnu.org/39090>.
Reported by Gábor Boskovits <boskovits@gmail.com>.
Fixes a regression introduced in 9e3f9ac3c0.

* guix/scripts/substitute.scm (http-multiple-get): In the "Connection: close"
case, pass (drop requests (+ 1 processed)) to 'loop' as the remaining
REQUESTS value.

Previously, we would pass a list containing duplicates, and thus the
final result would also contain duplicates.  When sent to the daemon,
that list would lead to a daemon error:

  got unexpected path `/gnu/store/…' from substituter
This commit is contained in:
Ludovic Courtès 2020-01-15 10:05:54 +01:00
parent 44ce3ebb46
commit e2922f527e
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -557,7 +557,7 @@ (define batch
(('connection 'close) (('connection 'close)
(close-port p) (close-port p)
(connect #f ;try again (connect #f ;try again
(append tail (drop requests processed)) (drop requests (+ 1 processed))
result)) result))
(_ (_
(loop tail (+ 1 processed) result)))))))))) ;keep going (loop tail (+ 1 processed) result)))))))))) ;keep going