]> www.infradead.org Git - users/dwmw2/ews-sync.git/commitdiff
Restart when not last in range
authorDavid Woodhouse <dwmw2@infradead.org>
Thu, 22 Jul 2010 15:43:31 +0000 (16:43 +0100)
committerDavid Woodhouse <dwmw2@infradead.org>
Thu, 22 Jul 2010 15:43:31 +0000 (16:43 +0100)
ews_syncfolder.c

index 5335d556eae0d4463e3f674563572d47468b62a7..6ce432448370a0c95a81ce8e6aefade9d090bf3d 100644 (file)
@@ -111,7 +111,7 @@ int main(int argc, char **argv)
                logger = soup_logger_new(SOUP_LOGGER_LOG_BODY, -1);
                soup_session_add_feature(sess, SOUP_SESSION_FEATURE(logger));
        }
-
+ again:
        msg = soup_ews_message_new(url, "SyncFolderItems");
 
 
@@ -140,7 +140,7 @@ int main(int argc, char **argv)
                g_free(syncstate);
        }
        soup_soap_message_start_element(msg, "MaxChangesReturned", NULL, NULL);
-       soup_soap_message_write_int(msg, 50);
+       soup_soap_message_write_int(msg, 5);
        soup_soap_message_end_element(msg);
 
        soup_soap_message_end_element(msg); /* SyncFolderItems */
@@ -263,7 +263,12 @@ int main(int argc, char **argv)
                changes = this->next;
                free(this);
        }
+               
        g_file_set_contents(statefilename, syncstate, strlen(syncstate), NULL);
+       if (!last_in_range) {
+               printf("Not last in range; restarting\n");
+               goto again;
+       }
        g_free(syncstate);
        g_free(statefilename);
        return 0;