MCPcopy Create free account
hub / github.com/MailCore/mailcore2 / connect

Method connect

src/core/imap/MCIMAPSession.cpp:642–751  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

640}
641
642void IMAPSession::connect(ErrorCode * pError)
643{
644 int r;
645
646 setup();
647
648 MCLog("connect %s", MCUTF8DESC(this));
649
650 MCAssert(mState == STATE_DISCONNECTED);
651
652 if (mHostname == NULL) {
653 * pError = ErrorConnection;
654 goto close;
655 }
656
657 switch (mConnectionType) {
658 case ConnectionTypeStartTLS:
659 MCLog("STARTTLS connect");
660 r = mailimap_socket_connect_voip(mImap, MCUTF8(mHostname), mPort, isVoIPEnabled());
661 if (hasError(r)) {
662 * pError = ErrorConnection;
663 goto close;
664 }
665
666 r = mailimap_socket_starttls(mImap);
667 if (hasError(r)) {
668 MCLog("no TLS %i", r);
669 * pError = ErrorTLSNotAvailable;
670 goto close;
671 }
672 break;
673
674 case ConnectionTypeTLS:
675 r = mailimap_ssl_connect_voip(mImap, MCUTF8(mHostname), mPort, isVoIPEnabled());
676 MCLog("ssl connect %s %u %u", MCUTF8(mHostname), mPort, r);
677 if (hasError(r)) {
678 MCLog("connect error %i", r);
679 * pError = ErrorConnection;
680 goto close;
681 }
682 if (!checkCertificate()) {
683 MCLog("ssl connect certificate ERROR %d", r);
684 * pError = ErrorCertificate;
685 goto close;
686 }
687
688 break;
689
690 default:
691 MCLog("socket connect %s %u", MCUTF8(mHostname), mPort);
692 r = mailimap_socket_connect_voip(mImap, MCUTF8(mHostname), mPort, isVoIPEnabled());
693 MCLog("socket connect %i", r);
694 if (hasError(r)) {
695 MCLog("connect error %i", r);
696 * pError = ErrorConnection;
697 goto close;
698 }
699 break;

Callers

nothing calls this directly

Calls 3

hasErrorFunction · 0.85
UTF8CharactersMethod · 0.80
locationOfStringMethod · 0.80

Tested by

no test coverage detected