aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/async/imap
diff options
context:
space:
mode:
authorGravatar Ryan Walklin <ryan@testtoast.com>2013-09-06 13:32:13 +1200
committerGravatar Ryan Walklin <ryan@testtoast.com>2013-09-06 13:32:13 +1200
commit755d656cc5e5119e44d6250efbd97cf388a44433 (patch)
treed8a2c31874a432a87188d4b76c9ad56238048a89 /src/async/imap
parent1d0cb6e92f546935d547f7be95ae36eea3547894 (diff)
Add MCOIMAPConnectOperation, include STARTTLS and auth methods in autoconfiguration
Diffstat (limited to 'src/async/imap')
-rwxr-xr-xsrc/async/imap/MCIMAPAsyncConnection.cc9
-rwxr-xr-xsrc/async/imap/MCIMAPAsyncConnection.h1
-rwxr-xr-xsrc/async/imap/MCIMAPAsyncSession.cc6
-rwxr-xr-xsrc/async/imap/MCIMAPAsyncSession.h1
-rw-r--r--src/async/imap/MCIMAPConnectOperation.cc21
-rw-r--r--src/async/imap/MCIMAPConnectOperation.h26
6 files changed, 64 insertions, 0 deletions
diff --git a/src/async/imap/MCIMAPAsyncConnection.cc b/src/async/imap/MCIMAPAsyncConnection.cc
index d1322687..f4e6b73b 100755
--- a/src/async/imap/MCIMAPAsyncConnection.cc
+++ b/src/async/imap/MCIMAPAsyncConnection.cc
@@ -25,6 +25,7 @@
#include "MCIMAPStoreFlagsOperation.h"
#include "MCIMAPStoreLabelsOperation.h"
#include "MCIMAPSearchOperation.h"
+#include "MCIMAPConnectOperation.h"
#include "MCIMAPCheckAccountOperation.h"
#include "MCIMAPFetchNamespaceOperation.h"
#include "MCIMAPIdleOperation.h"
@@ -487,6 +488,14 @@ IMAPIdentityOperation * IMAPAsyncConnection::identityOperation(IMAPIdentity * id
return op;
}
+IMAPOperation * IMAPAsyncConnection::connectOperation()
+{
+ IMAPConnectOperation * op = new IMAPConnectOperation();
+ op->setSession(this);
+ op->autorelease();
+ return op;
+}
+
IMAPOperation * IMAPAsyncConnection::checkAccountOperation()
{
IMAPCheckAccountOperation * op = new IMAPCheckAccountOperation();
diff --git a/src/async/imap/MCIMAPAsyncConnection.h b/src/async/imap/MCIMAPAsyncConnection.h
index 9f1b9d47..934180fd 100755
--- a/src/async/imap/MCIMAPAsyncConnection.h
+++ b/src/async/imap/MCIMAPAsyncConnection.h
@@ -123,6 +123,7 @@ namespace mailcore {
virtual IMAPIdentityOperation * identityOperation(IMAPIdentity * identity);
+ virtual IMAPOperation * connectOperation();
virtual IMAPOperation * checkAccountOperation();
virtual IMAPCapabilityOperation * capabilityOperation();
diff --git a/src/async/imap/MCIMAPAsyncSession.cc b/src/async/imap/MCIMAPAsyncSession.cc
index 5fe9a61b..7e791ce9 100755
--- a/src/async/imap/MCIMAPAsyncSession.cc
+++ b/src/async/imap/MCIMAPAsyncSession.cc
@@ -448,6 +448,12 @@ IMAPIdentityOperation * IMAPAsyncSession::identityOperation(IMAPIdentity * ident
return session->identityOperation(identity);
}
+IMAPOperation * IMAPAsyncSession::connectOperation()
+{
+ IMAPAsyncConnection * session = sessionForFolder(MCSTR("INBOX"));
+ return session->connectOperation();
+}
+
IMAPOperation * IMAPAsyncSession::checkAccountOperation()
{
IMAPAsyncConnection * session = sessionForFolder(MCSTR("INBOX"));
diff --git a/src/async/imap/MCIMAPAsyncSession.h b/src/async/imap/MCIMAPAsyncSession.h
index 10af928d..33362e01 100755
--- a/src/async/imap/MCIMAPAsyncSession.h
+++ b/src/async/imap/MCIMAPAsyncSession.h
@@ -138,6 +138,7 @@ namespace mailcore {
virtual IMAPIdentityOperation * identityOperation(IMAPIdentity * identity);
+ virtual IMAPOperation * connectOperation();
virtual IMAPOperation * checkAccountOperation();
virtual IMAPCapabilityOperation * capabilityOperation();
diff --git a/src/async/imap/MCIMAPConnectOperation.cc b/src/async/imap/MCIMAPConnectOperation.cc
new file mode 100644
index 00000000..e4f71d03
--- /dev/null
+++ b/src/async/imap/MCIMAPConnectOperation.cc
@@ -0,0 +1,21 @@
+//
+// MCIMAPConnectOperation.cc
+// mailcore2
+//
+// Created by Ryan Walklin on 6/09/13.
+// Copyright (c) 2013 MailCore. All rights reserved.
+//
+
+#include "MCIMAPConnectOperation.h"
+
+#include "MCIMAPAsyncConnection.h"
+#include "MCIMAPSession.h"
+
+using namespace mailcore;
+
+void IMAPConnectOperation::main()
+{
+ ErrorCode error;
+ session()->session()->connectIfNeeded(&error);
+ setError(error);
+}
diff --git a/src/async/imap/MCIMAPConnectOperation.h b/src/async/imap/MCIMAPConnectOperation.h
new file mode 100644
index 00000000..a5d3c035
--- /dev/null
+++ b/src/async/imap/MCIMAPConnectOperation.h
@@ -0,0 +1,26 @@
+//
+// MCIMAPConnectOperation.h
+// mailcore2
+//
+// Created by Ryan Walklin on 6/09/13.
+// Copyright (c) 2013 MailCore. All rights reserved.
+//
+
+#ifndef __MAILCORE_MCIMAPCONNECTOPERATION_H_
+#define __MAILCORE_MCIMAPCONNECTOPERATION_H_
+
+#include <MailCore/MCIMAPOperation.h>
+
+#ifdef __cplusplus
+
+namespace mailcore {
+
+ class IMAPConnectOperation : public IMAPOperation {
+ public: // subclass behavior
+ virtual void main();
+ };
+}
+
+#endif
+
+#endif /* defined(__MAILCORE_MCIMAPCONNECTOPERATION_H_) */