summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2020-05-14 20:14:52 +0200
committerCarl Hetherington <cth@carlh.net>2020-05-14 20:45:24 +0200
commitdd0f6069a536f414c5b37c786bb36dfc7fdf3d20 (patch)
tree86c23e1e09d8f76972f59d38daaa11483b6fa119 /src/lib
parenta0bba66b8a34d594a62750bd595e5cdc561abdf4 (diff)
Don't say 'certificate downloaded' if it failed during the read part.
Backported from 8c7ad603cf0a534abe1a920b70b0daa095257d3a in v2.15.x
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/internet.cc12
-rw-r--r--src/lib/internet.h6
2 files changed, 9 insertions, 9 deletions
diff --git a/src/lib/internet.cc b/src/lib/internet.cc
index e0af49b66..8721c1b73 100644
--- a/src/lib/internet.cc
+++ b/src/lib/internet.cc
@@ -79,24 +79,25 @@ get_from_url (string url, bool pasv, bool skip_pasv_ip, ScopedTemporary& temp)
return optional<string>();
}
+
optional<string>
-get_from_url (string url, bool pasv, bool skip_pasv_ip, function<void (boost::filesystem::path)> load)
+get_from_url (string url, bool pasv, bool skip_pasv_ip, function<optional<string> (boost::filesystem::path)> load)
{
ScopedTemporary temp;
optional<string> e = get_from_url (url, pasv, skip_pasv_ip, temp);
if (e) {
return e;
}
- load (temp.file());
- return optional<string>();
+ return load (temp.file());
}
+
/** @param url URL of ZIP file.
* @param file Filename within ZIP file.
* @param load Function passed a (temporary) filesystem path of the unpacked file.
*/
optional<string>
-get_from_zip_url (string url, string file, bool pasv, bool skip_pasv_ip, function<void (boost::filesystem::path)> load)
+get_from_zip_url (string url, string file, bool pasv, bool skip_pasv_ip, function<optional<string> (boost::filesystem::path)> load)
{
/* Download the ZIP file to temp_zip */
ScopedTemporary temp_zip;
@@ -153,6 +154,5 @@ get_from_zip_url (string url, string file, bool pasv, bool skip_pasv_ip, functio
zip_close (zip);
temp_cert.close ();
- load (temp_cert.file ());
- return optional<string> ();
+ return load (temp_cert.file());
}
diff --git a/src/lib/internet.h b/src/lib/internet.h
index 125533b5d..da0bfc005 100644
--- a/src/lib/internet.h
+++ b/src/lib/internet.h
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2014-2019 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2014-2020 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
@@ -25,5 +25,5 @@
class ScopedTemporary;
boost::optional<std::string> get_from_url (std::string url, bool pasv, bool skip_pasv_ip, ScopedTemporary& temp);
-boost::optional<std::string> get_from_url (std::string url, bool pasv, bool skip_pasv_ip, boost::function<void (boost::filesystem::path)> load);
-boost::optional<std::string> get_from_zip_url (std::string url, std::string file, bool pasv, bool skip_pasv_ip, boost::function<void (boost::filesystem::path)> load);
+boost::optional<std::string> get_from_url (std::string url, bool pasv, bool skip_pasv_ip, boost::function<boost::optional<std::string> (boost::filesystem::path)> load);
+boost::optional<std::string> get_from_zip_url (std::string url, std::string file, bool pasv, bool skip_pasv_ip, boost::function<boost::optional<std::string> (boost::filesystem::path)> load);