summaryrefslogtreecommitdiff
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:14:52 +0200
commit8c7ad603cf0a534abe1a920b70b0daa095257d3a (patch)
tree28ecc906611cd60b6d2df3d33446e32eb654d907
parent4edc14c8b1410e24f68b510cc14409b96c0338a3 (diff)
Don't say 'certificate downloaded' if it failed during the read part.
-rw-r--r--src/lib/internet.cc12
-rw-r--r--src/lib/internet.h6
-rw-r--r--src/wx/christie_certificate_panel.cc2
-rw-r--r--src/wx/download_certificate_panel.cc9
-rw-r--r--src/wx/download_certificate_panel.h2
5 files changed, 17 insertions, 14 deletions
diff --git a/src/lib/internet.cc b/src/lib/internet.cc
index b993117bb..943363d1a 100644
--- a/src/lib/internet.cc
+++ b/src/lib/internet.cc
@@ -119,24 +119,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;
@@ -193,6 +194,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 5f9a25e3b..8aa7264c6 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,6 +25,6 @@
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);
std::list<std::string> ls_url (std::string url);
diff --git a/src/wx/christie_certificate_panel.cc b/src/wx/christie_certificate_panel.cc
index 7db3fef25..0795b09e9 100644
--- a/src/wx/christie_certificate_panel.cc
+++ b/src/wx/christie_certificate_panel.cc
@@ -76,7 +76,7 @@ ChristieCertificatePanel::do_download ()
_dialog->message()->SetLabel(wxT(""));
error_dialog (this, std_to_wx(*all_errors));
} else {
- _dialog->message()->SetLabel (_("Certificate downloaded"));
+ _dialog->message()->SetLabel (_("Certificate dowloaded"));
_dialog->setup_sensitivity ();
}
}
diff --git a/src/wx/download_certificate_panel.cc b/src/wx/download_certificate_panel.cc
index 2f3b435ef..461c68966 100644
--- a/src/wx/download_certificate_panel.cc
+++ b/src/wx/download_certificate_panel.cc
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2014-2018 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2014-2020 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
@@ -22,10 +22,12 @@
#include "download_certificate_panel.h"
#include "download_certificate_dialog.h"
#include "lib/signal_manager.h"
+#include "lib/compose.hpp"
#include <dcp/util.h>
#include <dcp/exceptions.h>
#include <boost/bind.hpp>
+using std::string;
using boost::function;
using boost::optional;
@@ -51,14 +53,15 @@ DownloadCertificatePanel::DownloadCertificatePanel (DownloadCertificateDialog* d
_overall_sizer->SetSizeHints (this);
}
-void
+optional<string>
DownloadCertificatePanel::load (boost::filesystem::path file)
{
try {
_certificate = dcp::Certificate (dcp::file_to_string (file));
} catch (dcp::MiscError& e) {
- error_dialog (this, _("Could not read certificate file."), std_to_wx(e.what()));
+ return String::compose(wx_to_std(_("Could not read certificate file (%1)")), e.what());
}
+ return optional<string>();
}
optional<dcp::Certificate>
diff --git a/src/wx/download_certificate_panel.h b/src/wx/download_certificate_panel.h
index d1f0bf4de..f51bcde13 100644
--- a/src/wx/download_certificate_panel.h
+++ b/src/wx/download_certificate_panel.h
@@ -37,7 +37,7 @@ public:
virtual bool ready_to_download () const;
void download ();
- void load (boost::filesystem::path);
+ boost::optional<std::string> load (boost::filesystem::path);
boost::optional<dcp::Certificate> certificate () const;
protected: