Trim spaces from entries to certificate download pages.
[dcpomatic.git] / src / wx / gdc_certificate_panel.cc
index bc1087fd164a46b21d832f2830c82e2f9d9008c0..d78b1b56dfd2397bda51331cda5c7e0c0e43c938 100644 (file)
 
 */
 
-#include "gdc_certificate_panel.h"
+
 #include "download_certificate_dialog.h"
+#include "gdc_certificate_panel.h"
 #include "wx_util.h"
-#include "lib/internet.h"
 #include "lib/compose.hpp"
 #include "lib/config.h"
+#include "lib/internet.h"
+#include <boost/algorithm/string.hpp>
+
 
 using std::string;
-using boost::optional;
+using namespace boost::algorithm;
 using boost::bind;
+using boost::optional;
 #if BOOST_VERSION >= 106100
 using namespace boost::placeholders;
 #endif
 
+
 GDCCertificatePanel::GDCCertificatePanel (DownloadCertificateDialog* dialog)
        : CredentialsDownloadCertificatePanel (
                        dialog,
@@ -49,14 +54,21 @@ GDCCertificatePanel::GDCCertificatePanel (DownloadCertificateDialog* dialog)
 void
 GDCCertificatePanel::do_download ()
 {
-       string const url = String::compose(
+       string serial = wx_to_std (_serial->GetValue());
+       trim(serial);
+       if (!serial.empty() && serial[0] == 'A') {
+               /* We're adding the A ourselves */
+               serial = serial.substr(1);
+       }
+       string url = String::compose(
                "ftp://%1:%2@ftp.gdc-tech.com/SHA256/A%3.crt.pem",
                Config::instance()->gdc_username().get(),
                Config::instance()->gdc_password().get(),
-               wx_to_std(_serial->GetValue())
+               serial
                );
+       trim(url);
 
-       optional<string> error = get_from_url (url, true, false, boost::bind(&DownloadCertificatePanel::load_certificate, this, _1));
+       auto error = get_from_url (url, true, false, boost::bind(&DownloadCertificatePanel::load_certificate, this, _1, _2));
 
        if (error) {
                _dialog->message()->SetLabel(wxT(""));