[haiku-commits] haiku: hrev43681 - in src: add-ons/mail_daemon/inbound_protocols/imap kits/mail

  • From: kallisti5@xxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 22 Jan 2012 07:13:05 +0100 (CET)

hrev43681 adds 1 changeset to branch 'master'
old head: d3ff06683af390a4c2e83b69177e0a2eb76679bc
new head: fd391ef3c26ca350b10f11fd351003296e60d8ad

----------------------------------------------------------------------------

fd391ef: mail kit: Improve debugging of internal mail kit network code
  
  * Return the correct error code if there is a connection error
  * Be more verbose if there is a problem
    network connection problem instead of showing "Login error: "
  * IMAP inbound: Show a valid error message if there is a
  * Show server name resolution, fishes out IPv6 bug #8293

                          [ Alexander von Gluck IV <kallisti5@xxxxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev43681
Commit:      fd391ef3c26ca350b10f11fd351003296e60d8ad
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fd391ef
Author:      Alexander von Gluck IV <kallisti5@xxxxxxxxxxx>
Date:        Sun Jan 22 06:12:07 2012 UTC

Ticket:      https://dev.haiku-os.org/ticket/8293

----------------------------------------------------------------------------

2 files changed, 16 insertions(+), 4 deletions(-)
.../inbound_protocols/imap/IMAPInboundProtocol.cpp |   11 +++++++++--
src/kits/mail/ServerConnection.cpp                 |    9 +++++++--

----------------------------------------------------------------------------

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 8784ba3..2aa44fa 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 f7d34de..819be34 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");


Other related posts: