aboutsummaryrefslogtreecommitdiffstats
path: root/src/messaging/sendmail
diff options
context:
space:
mode:
Diffstat (limited to 'src/messaging/sendmail')
-rw-r--r--src/messaging/sendmail/sendmailTransport.cpp34
1 files changed, 24 insertions, 10 deletions
diff --git a/src/messaging/sendmail/sendmailTransport.cpp b/src/messaging/sendmail/sendmailTransport.cpp
index 1d4d2361..969cb7ae 100644
--- a/src/messaging/sendmail/sendmailTransport.cpp
+++ b/src/messaging/sendmail/sendmailTransport.cpp
@@ -28,6 +28,15 @@
#include "vmime/utility/childProcess.hpp"
#include "vmime/utility/smartPtr.hpp"
+#include "vmime/config.hpp"
+
+
+// Helpers for service properties
+#define GET_PROPERTY(type, prop) \
+ (sm_infos.getPropertyValue <type>(getSession(), sm_infos.getProperties().prop))
+#define HAS_PROPERTY(prop) \
+ (sm_infos.hasProperty(getSession(), sm_infos.getProperties().prop))
+
#if VMIME_BUILTIN_PLATFORM_POSIX
@@ -62,8 +71,7 @@ void sendmailTransport::connect()
throw exceptions::already_connected();
// Use the specified path for 'sendmail' or a default one if no path is specified
- m_sendmailPath = getSession()->getProperties().getProperty
- (sm_infos.getPropertyPrefix() + "binpath", string(VMIME_SENDMAIL_PATH));
+ m_sendmailPath = GET_PROPERTY(string, PROPERTY_BINPATH);
m_connected = true;
}
@@ -177,24 +185,30 @@ const serviceInfos& sendmailTransport::getInfos() const
}
-const port_t sendmailTransport::_infos::getDefaultPort() const
+const string sendmailTransport::_infos::getPropertyPrefix() const
{
- return (0);
+ return "transport.sendmail.";
}
-const string sendmailTransport::_infos::getPropertyPrefix() const
+const sendmailTransport::_infos::props& sendmailTransport::_infos::getProperties() const
{
- return "transport.sendmail.";
+ static props p =
+ {
+ // Path to sendmail (override default)
+ property("binpath", serviceInfos::property::TYPE_STRING, string(VMIME_SENDMAIL_PATH))
+ };
+
+ return p;
}
-const std::vector <string> sendmailTransport::_infos::getAvailableProperties() const
+const std::vector <serviceInfos::property> sendmailTransport::_infos::getAvailableProperties() const
{
- std::vector <string> list;
+ std::vector <property> list;
+ const props& p = getProperties();
- // Path to sendmail (override default)
- list.push_back("binpath");
+ list.push_back(p.PROPERTY_BINPATH);
return (list);
}