diff --git a/src/engine/imap/api/imap-client-service.vala b/src/engine/imap/api/imap-client-service.vala index da3598f3..fe534b49 100644 --- a/src/engine/imap/api/imap-client-service.vala +++ b/src/engine/imap/api/imap-client-service.vala @@ -558,7 +558,7 @@ public class Geary.Imap.ClientService : Geary.ClientService { var session = source as ClientSession; if (session != null && session.protocol_state == NOT_CONNECTED && - session.disconnected != null) { + session.disconnected != ClientSession.DisconnectReason.NULL) { debug( "Session disconnected: %s: %s", session.to_string(), diff --git a/src/engine/imap/api/imap-session-object.vala b/src/engine/imap/api/imap-session-object.vala index 80695fca..24fbf5e6 100644 --- a/src/engine/imap/api/imap-session-object.vala +++ b/src/engine/imap/api/imap-session-object.vala @@ -109,10 +109,11 @@ public abstract class Geary.Imap.SessionObject : BaseObject, Logging.Source { // Disconnect reason will null when the session is being // logged out but the logout command has not yet been // completed. - var reason = ( - this.session.disconnected ?? - ClientSession.DisconnectReason.LOCAL_CLOSE - ); + var reason = + this.session.disconnected == + ClientSession.DisconnectReason.NULL ? + ClientSession.DisconnectReason.LOCAL_CLOSE : + this.session.disconnected; close(); disconnected(reason); } diff --git a/src/engine/imap/transport/imap-client-session.vala b/src/engine/imap/transport/imap-client-session.vala index 9f1eb94e..31aa16af 100644 --- a/src/engine/imap/transport/imap-client-session.vala +++ b/src/engine/imap/transport/imap-client-session.vala @@ -108,6 +108,7 @@ public class Geary.Imap.ClientSession : BaseObject, Logging.Source { } public enum DisconnectReason { + NULL, LOCAL_CLOSE, LOCAL_ERROR, REMOTE_CLOSE, @@ -277,7 +278,7 @@ public class Geary.Imap.ClientSession : BaseObject, Logging.Source { } /** Specifies the reason the session was disconnected, if any. */ - public DisconnectReason? disconnected { get; private set; default = null; } + public DisconnectReason disconnected { get; private set; default = NULL; } /** * Set of IMAP extensions reported as being supported by the server.