Reestablish dropped connections: Closes #4568
This rather large patch makes Geary.Conversations now responsible for reestablishing a connection with the server if it ever drops due to error. Once reestablished, Conversations will resynchronize and report any new messages to the client. To the client, it's invisible. Working on this revealed problems with session teardown and Folder state issues, as well as a memory leak. These are all fixed in the patch. There remains other connection timeout problems when the network is unavailable, but will need to be addressed in a separate patch.
This commit is contained in:
parent
643d6dbc33
commit
4b6ac96a7d
22 changed files with 706 additions and 200 deletions
|
|
@ -11,6 +11,8 @@ private class Geary.Sqlite.Folder : Object, Geary.ReferenceSemantics {
|
|||
public const Geary.Email.Field REQUIRED_FOR_DUPLICATE_DETECTION =
|
||||
Geary.Email.Field.REFERENCES | Geary.Email.Field.PROPERTIES;
|
||||
|
||||
public bool opened { get; private set; default = false; }
|
||||
|
||||
protected int manual_ref_count { get; protected set; }
|
||||
|
||||
private ImapDatabase db;
|
||||
|
|
@ -20,7 +22,6 @@ private class Geary.Sqlite.Folder : Object, Geary.ReferenceSemantics {
|
|||
private MessageLocationTable location_table;
|
||||
private ImapMessagePropertiesTable imap_message_properties_table;
|
||||
private Geary.FolderPath path;
|
||||
private bool opened = false;
|
||||
|
||||
internal Folder(ImapDatabase db, FolderRow folder_row, Geary.Imap.FolderProperties? properties,
|
||||
Geary.FolderPath path) throws Error {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue