about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorCole Helbling <cole.e.helbling@outlook.com>2020-04-04T19·27-0700
committerEelco Dolstra <edolstra@gmail.com>2020-04-10T08·39+0200
commit7fee49ef3719e7359b1b317a5b5a2bf0b4ecc3df (patch)
treeb43220c935db543dcf2033cdcac8279b45d7fc5d /src
parente914cfb06fd64710cb6b030b5b2c8e222745c7fb (diff)
Don't retry on "unsupported protocol" error
When encountering an unsupported protocol, there's no need to retry.
Chances are, it won't suddenly be supported between retry attempts;
error instead. Otherwise, you see something like the following:

    $ nix-env -i -f git://git@github.com/foo/bar
    warning: unable to download 'git://git@github.com/foo/bar': Unsupported protocol (1); retrying in 335 ms
    warning: unable to download 'git://git@github.com/foo/bar': Unsupported protocol (1); retrying in 604 ms
    warning: unable to download 'git://git@github.com/foo/bar': Unsupported protocol (1); retrying in 1340 ms
    warning: unable to download 'git://git@github.com/foo/bar': Unsupported protocol (1); retrying in 2685 ms

With this change, you now see:

    $ nix-env -i -f git://git@github.com/foo/bar
    error: unable to download 'git://git@github.com/foo/bar': Unsupported protocol (1)

(cherry picked from commit c976cb0b8ab5d0f2c4ab8c9826fc7db56e2f1b3e)
Signed-off-by: Domen Kožar <domen@dev.si>
Diffstat (limited to 'src')
-rw-r--r--src/libstore/download.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/libstore/download.cc b/src/libstore/download.cc
index cc78d0ba1783..80674a9e7a43 100644
--- a/src/libstore/download.cc
+++ b/src/libstore/download.cc
@@ -391,6 +391,7 @@ struct CurlDownloader : public Downloader
                         case CURLE_SSL_CACERT_BADFILE:
                         case CURLE_TOO_MANY_REDIRECTS:
                         case CURLE_WRITE_ERROR:
+                        case CURLE_UNSUPPORTED_PROTOCOL:
                             err = Misc;
                             break;
                         default: // Shut up warnings