Use dcp::file_to_string().
[dcpomatic.git] / src / lib / send_problem_report_job.cc
index 11f700de077490751550913257e8991df05f4d8a..6ab83ee6211d6bea24b93fb6e6367f367d93f979 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2014-2017 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2014-2021 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
@@ -18,6 +18,7 @@
 
 */
 
+
 #include "send_problem_report_job.h"
 #include "compose.hpp"
 #include "film.h"
 #include "emailer.h"
 #include "environment_info.h"
 #include <libxml++/libxml++.h>
-#include <boost/foreach.hpp>
 
 #include "i18n.h"
 
-using std::string;
+
 using std::list;
-using boost::shared_ptr;
+using std::shared_ptr;
+using std::string;
+
 
 /** @param film Film thta the problem is with, or 0.
  *  @param from Email address to use for From:
@@ -52,6 +54,13 @@ SendProblemReportJob::SendProblemReportJob (
 
 }
 
+
+SendProblemReportJob::~SendProblemReportJob ()
+{
+       stop_thread ();
+}
+
+
 string
 SendProblemReportJob::name () const
 {
@@ -62,12 +71,14 @@ SendProblemReportJob::name () const
        return String::compose (_("Email problem report for %1"), _film->name());
 }
 
+
 string
 SendProblemReportJob::json_name () const
 {
        return N_("send_problem_report");
 }
 
+
 void
 SendProblemReportJob::run ()
 {
@@ -76,9 +87,9 @@ SendProblemReportJob::run ()
 
        string body = _summary + "\n\n";
 
-       body += "Version: " + string (dcpomatic_version) + " " + string (dcpomatic_git_commit) + "\n\n";
+       body += "Version: " + string(dcpomatic_version) + " " + string(dcpomatic_git_commit) + "\n\n";
 
-       BOOST_FOREACH (string i, environment_info ()) {
+       for (auto i: environment_info ()) {
                body += i + "\n";
        }
 
@@ -97,32 +108,19 @@ SendProblemReportJob::run ()
                body += "---<8----\n";
        }
 
-       list<string> to;
-       to.push_back ("carl@dcpomatic.com");
-
-       Emailer emailer (_from, to, "DCP-o-matic problem report", body);
-       emailer.send ("main.carlh.net", 2525, EMAIL_PROTOCOL_STARTTLS);
+       Emailer emailer (_from, {"carl@dcpomatic.com"}, "DCP-o-matic problem report", body);
+       emailer.send ("main.carlh.net", 2525, EmailProtocol::STARTTLS);
 
        set_progress (1);
        set_state (FINISHED_OK);
 }
 
+
 void
 SendProblemReportJob::add_file (string& body, boost::filesystem::path file) const
 {
-       FILE* f = fopen_boost (_film->file (file), "r");
-       if (!f) {
-               return;
-       }
-
        body += file.string() + ":\n";
        body += "---<8----\n";
-       uintmax_t const size = boost::filesystem::file_size (_film->file (file));
-       char* buffer = new char[size + 1];
-       int const N = fread (buffer, 1, size, f);
-       buffer[N] = '\0';
-       body += buffer;
-       delete[] buffer;
+       body += dcp::file_to_string (_film->file(file));
        body += "---<8----\n\n";
-       fclose (f);
 }