chiark / gitweb /
dgit: url_fetch: Honour new CurlOpts
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 23 Jul 2019 16:33:41 +0000 (17:33 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 23 Jul 2019 20:58:55 +0000 (21:58 +0100)
No functional change with the existing callers.

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

diff --git a/dgit b/dgit
index 714d6b44caff13542436eae6e16631a0592880fa..0f801a3d30127b518b393481e55842bde52a9d20 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -1196,6 +1196,7 @@ sub url_fetch ($;@) {
     my ($url, %xopts) = @_;
     # Ok404 => 1   means give undef for 404
     # AccessBase => 'archive-query' (eg)
+    # CurlOpts => { key => value }
 
     use WWW::Curl::Easy;
 
@@ -1212,6 +1213,10 @@ sub url_fetch ($;@) {
     $setopt->(CURLOPT_NOSIGNAL,        1);
     $setopt->(CURLOPT_WRITEDATA,       \$response_body);
 
+    my $xcurlopts = $xopts{CurlOpts} // { };
+    keys %$xcurlopts;
+    while (my ($k,$v) = each %$xcurlopts) { $setopt->($k,$v); }
+
     if ($xopts{AccessBase} && $url =~ m#^https://([-.0-9a-z]+)/#) {
        foreach my $k ("$xopts{AccessBase}-tls-key",
                       "$xopts{AccessBase}-tls-curl-ca-args") {