aboutsummaryrefslogtreecommitdiffstats
path: root/vmime/net/pop3/POP3Store.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'vmime/net/pop3/POP3Store.hpp')
-rw-r--r--vmime/net/pop3/POP3Store.hpp43
1 files changed, 10 insertions, 33 deletions
diff --git a/vmime/net/pop3/POP3Store.hpp b/vmime/net/pop3/POP3Store.hpp
index 461741f8..b19c9790 100644
--- a/vmime/net/pop3/POP3Store.hpp
+++ b/vmime/net/pop3/POP3Store.hpp
@@ -31,6 +31,8 @@
#include "vmime/net/socket.hpp"
#include "vmime/net/timeoutHandler.hpp"
+#include "vmime/net/pop3/POP3ServiceInfos.hpp"
+
#include "vmime/utility/stream.hpp"
@@ -52,7 +54,7 @@ class POP3Store : public store
public:
- POP3Store(ref <session> sess, ref <security::authenticator> auth);
+ POP3Store(ref <session> sess, ref <security::authenticator> auth, const bool secured = false);
~POP3Store();
const string getProtocolName() const;
@@ -88,6 +90,10 @@ private:
void authenticateSASL();
#endif // VMIME_HAVE_SASL_SUPPORT
+#if VMIME_HAVE_TLS_SUPPORT
+ void startTLS();
+#endif // VMIME_HAVE_TLS_SUPPORT
+
const std::vector <string> getCapabilities();
static const bool isSuccessResponse(const string& buffer);
@@ -116,40 +122,11 @@ private:
ref <timeoutHandler> m_timeoutHandler;
+ bool m_secured;
- // Service infos
- class _infos : public serviceInfos
- {
- public:
-
- struct props
- {
- // POP3-specific options
- serviceInfos::property PROPERTY_OPTIONS_APOP;
- serviceInfos::property PROPERTY_OPTIONS_APOP_FALLBACK;
-#if VMIME_HAVE_SASL_SUPPORT
- serviceInfos::property PROPERTY_OPTIONS_SASL;
- serviceInfos::property PROPERTY_OPTIONS_SASL_FALLBACK;
-#endif // VMIME_HAVE_SASL_SUPPORT
-
- // Common properties
- serviceInfos::property PROPERTY_AUTH_USERNAME;
- serviceInfos::property PROPERTY_AUTH_PASSWORD;
-
- serviceInfos::property PROPERTY_SERVER_ADDRESS;
- serviceInfos::property PROPERTY_SERVER_PORT;
- serviceInfos::property PROPERTY_SERVER_SOCKETFACTORY;
-
- serviceInfos::property PROPERTY_TIMEOUT_FACTORY;
- };
-
- const props& getProperties() const;
- const string getPropertyPrefix() const;
- const std::vector <serviceInfos::property> getAvailableProperties() const;
- };
-
- static _infos sm_infos;
+ // Service infos
+ static POP3ServiceInfos sm_infos;
};