diff options
| -rw-r--r-- | client/changes/bug_reset-synchronizer-state | 2 | ||||
| -rw-r--r-- | client/src/leap/soledad/client/__init__.py | 1 | ||||
| -rw-r--r-- | client/src/leap/soledad/client/sqlcipher.py | 4 | 
3 files changed, 7 insertions, 0 deletions
| diff --git a/client/changes/bug_reset-synchronizer-state b/client/changes/bug_reset-synchronizer-state new file mode 100644 index 00000000..9678b36b --- /dev/null +++ b/client/changes/bug_reset-synchronizer-state @@ -0,0 +1,2 @@ +  o Reset synchronizer state in order to reuse the same synchronizer object +    multiple times. diff --git a/client/src/leap/soledad/client/__init__.py b/client/src/leap/soledad/client/__init__.py index 2fb33184..656c0e77 100644 --- a/client/src/leap/soledad/client/__init__.py +++ b/client/src/leap/soledad/client/__init__.py @@ -1065,6 +1065,7 @@ class Soledad(object):          """          if self._db:              # acquire lock before attempt to sync +            # TODO: move this lock to inside SQLCipherDatabase.              with Soledad.syncing_lock[self._db._get_replica_uid()]:                  local_gen = self._db.sync(                      urlparse.urljoin(self.server_url, 'user-%s' % self._uuid), diff --git a/client/src/leap/soledad/client/sqlcipher.py b/client/src/leap/soledad/client/sqlcipher.py index 26238af6..576b51ad 100644 --- a/client/src/leap/soledad/client/sqlcipher.py +++ b/client/src/leap/soledad/client/sqlcipher.py @@ -401,6 +401,10 @@ class SQLCipherDatabase(sqlite_backend.SQLitePartialExpandDatabase):                                    creds=creds,                                    crypto=self._crypto))              self._syncers[url] = (h, syncer) +        # in order to reuse the same synchronizer multiple times we have to +        # reset its state (i.e. the number of documents received from target +        # and inserted in the local replica). +        syncer.num_inserted = 0          return syncer      def _extra_schema_init(self, c): | 
