diff --git a/src/add-ons/mail_daemon/inbound_protocols/imap/IMAPInboundProtocol.cpp b/src/add-ons/mail_daemon/inbound_protocols/imap/IMAPInboundProtocol.cpp index 8784ba346e..2aa44fad79 100644 --- a/src/add-ons/mail_daemon/inbound_protocols/imap/IMAPInboundProtocol.cpp +++ b/src/add-ons/mail_daemon/inbound_protocols/imap/IMAPInboundProtocol.cpp @@ -345,8 +345,15 @@ IMAPInboundProtocol::Connect(const char* server, const char* username, status_t status = fIMAPMailbox.Connect(server, username, password, useSSL, port); if (status != B_OK) { - statusMessage = "Failed to login: "; - statusMessage += fIMAPMailbox.CommandError(); + if (fIMAPMailbox.CommandError().CountChars() > 0) { + // This was a IMAP error + statusMessage = "Failed to login: "; + statusMessage += fIMAPMailbox.CommandError(); + } else { + // Probably a connection error + statusMessage = "Connection error: "; + statusMessage += strerror(status); + } ShowError(statusMessage); ResetProgress(); return status; diff --git a/src/kits/mail/ServerConnection.cpp b/src/kits/mail/ServerConnection.cpp index f7d34de3f2..819be34721 100644 --- a/src/kits/mail/ServerConnection.cpp +++ b/src/kits/mail/ServerConnection.cpp @@ -224,14 +224,19 @@ SocketConnection::Connect(const char* server, uint32 port) if (status != B_OK) return status; + TRACE("Server resolves to %s\n", address.ToString().String()); + fSocket = socket(address.Family(), SOCK_STREAM, 0); - if (fSocket < 0) + if (fSocket < 0) { + TRACE("%s: Socket Error: %s\n", __func__, strerror(status)); return errno; + } int result = connect(fSocket, address, address.Length()); if (result < 0) { + TRACE("%s: Connect Error: %s\n", __func__, strerror(result)); close(fSocket); - return errno; + return result; } TRACE("SocketConnection: connected\n");