diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-12-23 21:53:51 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-12-23 21:53:51 +0000 |
| commit | 320c9b6d68d111bc0768e210cc8c7ae9d0d7c22e (patch) | |
| tree | 7ad4f70d6d32fc465b5826b333596696f67e8972 /src/lib | |
| parent | 692e67b9dc1e8cd72546b3766e8f38956932ee58 (diff) | |
Move default config options into their own tab; support user/password for SMTP TLS/SSL.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/config.cc | 4 | ||||
| -rw-r--r-- | src/lib/config.h | 18 | ||||
| -rw-r--r-- | src/lib/kdm.cc | 26 | ||||
| -rw-r--r-- | src/lib/kdm.h | 6 | ||||
| -rw-r--r-- | src/lib/wscript | 1 |
5 files changed, 44 insertions, 11 deletions
diff --git a/src/lib/config.cc b/src/lib/config.cc index 87cce9d7b..1c34619b4 100644 --- a/src/lib/config.cc +++ b/src/lib/config.cc @@ -176,6 +176,8 @@ Config::read () } _mail_server = f.string_child ("MailServer"); + _mail_user = f.optional_string_child("MailUser").get_value_or (""); + _mail_password = f.optional_string_child("MailPassword").get_value_or (""); _kdm_from = f.string_child ("KDMFrom"); _kdm_email = f.string_child ("KDMEmail"); } @@ -347,6 +349,8 @@ Config::write () const } root->add_child("MailServer")->add_child_text (_mail_server); + root->add_child("MailUser")->add_child_text (_mail_user); + root->add_child("MailPassword")->add_child_text (_mail_password); root->add_child("KDMFrom")->add_child_text (_kdm_from); root->add_child("KDMEmail")->add_child_text (_kdm_email); diff --git a/src/lib/config.h b/src/lib/config.h index 14c707dd2..67d293884 100644 --- a/src/lib/config.h +++ b/src/lib/config.h @@ -155,6 +155,14 @@ public: return _mail_server; } + std::string mail_user () const { + return _mail_user; + } + + std::string mail_password () const { + return _mail_password; + } + std::string kdm_from () const { return _kdm_from; } @@ -261,6 +269,14 @@ public: _mail_server = s; } + void set_mail_user (std::string u) { + _mail_user = u; + } + + void set_mail_password (std::string p) { + _mail_password = p; + } + void set_kdm_from (std::string f) { _kdm_from = f; } @@ -321,6 +337,8 @@ private: std::vector<PresetColourConversion> _colour_conversions; std::list<boost::shared_ptr<Cinema> > _cinemas; std::string _mail_server; + std::string _mail_user; + std::string _mail_password; std::string _kdm_from; std::string _kdm_email; diff --git a/src/lib/kdm.cc b/src/lib/kdm.cc index 97e0536d1..cf551285b 100644 --- a/src/lib/kdm.cc +++ b/src/lib/kdm.cc @@ -46,7 +46,7 @@ struct ScreenKDM }; static string -kdm_filename (shared_ptr<Film> film, ScreenKDM kdm) +kdm_filename (shared_ptr<const Film> film, ScreenKDM kdm) { return tidy_for_filename (film->name()) + "_" + tidy_for_filename (kdm.screen->cinema->name) + "_" + tidy_for_filename (kdm.screen->name) + ".kdm.xml"; } @@ -56,7 +56,7 @@ struct CinemaKDMs shared_ptr<Cinema> cinema; list<ScreenKDM> screen_kdms; - void make_zip_file (shared_ptr<Film> film, boost::filesystem::path zip_file) const + void make_zip_file (shared_ptr<const Film> film, boost::filesystem::path zip_file) const { int error; struct zip* zip = zip_open (zip_file.string().c_str(), ZIP_CREATE | ZIP_EXCL, &error); @@ -100,7 +100,7 @@ operator== (ScreenKDM const & a, ScreenKDM const & b) static list<ScreenKDM> make_screen_kdms ( - shared_ptr<Film> film, + shared_ptr<const Film> film, list<shared_ptr<Screen> > screens, boost::filesystem::path dcp, boost::posix_time::ptime from, @@ -124,7 +124,7 @@ make_screen_kdms ( static list<CinemaKDMs> make_cinema_kdms ( - shared_ptr<Film> film, + shared_ptr<const Film> film, list<shared_ptr<Screen> > screens, boost::filesystem::path dcp, boost::posix_time::ptime from, @@ -166,7 +166,7 @@ make_cinema_kdms ( void write_kdm_files ( - shared_ptr<Film> film, + shared_ptr<const Film> film, list<shared_ptr<Screen> > screens, boost::filesystem::path dcp, boost::posix_time::ptime from, @@ -186,7 +186,7 @@ write_kdm_files ( void write_kdm_zip_files ( - shared_ptr<Film> film, + shared_ptr<const Film> film, list<shared_ptr<Screen> > screens, boost::filesystem::path dcp, boost::posix_time::ptime from, @@ -205,7 +205,7 @@ write_kdm_zip_files ( void email_kdms ( - shared_ptr<Film> film, + shared_ptr<const Film> film, list<shared_ptr<Screen> > screens, boost::filesystem::path dcp, boost::posix_time::ptime from, @@ -237,7 +237,17 @@ email_kdms ( quickmail_set_body (mail, body.c_str()); quickmail_add_attachment_file (mail, zip_file.string().c_str(), "application/zip"); - char const* error = quickmail_send (mail, Config::instance()->mail_server().c_str(), 25, "", ""); + + int const port = Config::instance()->mail_user().empty() ? 25 : 587; + + char const* error = quickmail_send ( + mail, + Config::instance()->mail_server().c_str(), + port, + Config::instance()->mail_user().c_str(), + Config::instance()->mail_password().c_str() + ); + if (error) { quickmail_destroy (mail); throw KDMError (String::compose ("Failed to send KDM email (%1)", error)); diff --git a/src/lib/kdm.h b/src/lib/kdm.h index 5701a8bf8..c4fd43d49 100644 --- a/src/lib/kdm.h +++ b/src/lib/kdm.h @@ -24,7 +24,7 @@ class Screen; class Film; extern void write_kdm_files ( - boost::shared_ptr<Film> film, + boost::shared_ptr<const Film> film, std::list<boost::shared_ptr<Screen> > screens, boost::filesystem::path dcp, boost::posix_time::ptime from, @@ -33,7 +33,7 @@ extern void write_kdm_files ( ); extern void write_kdm_zip_files ( - boost::shared_ptr<Film> film, + boost::shared_ptr<const Film> film, std::list<boost::shared_ptr<Screen> > screens, boost::filesystem::path dcp, boost::posix_time::ptime from, @@ -42,7 +42,7 @@ extern void write_kdm_zip_files ( ); extern void email_kdms ( - boost::shared_ptr<Film> film, + boost::shared_ptr<const Film> film, std::list<boost::shared_ptr<Screen> > screens, boost::filesystem::path dcp, boost::posix_time::ptime from, diff --git a/src/lib/wscript b/src/lib/wscript index 1699c5ec8..25186a3d3 100644 --- a/src/lib/wscript +++ b/src/lib/wscript @@ -44,6 +44,7 @@ sources = """ resampler.cc scp_dcp_job.cc scaler.cc + send_kdm_email_job.cc server.cc server_finder.cc sndfile_content.cc |
