diff options
author | Victor Shyba <victor1984@riseup.net> | 2016-10-28 17:55:14 -0300 |
---|---|---|
committer | drebs <drebs@leap.se> | 2016-12-12 09:12:00 -0200 |
commit | 304739a5b7335a521c37680235bd3452cf3c8d0f (patch) | |
tree | 48121847e993e5de696ce0b73caa6fa311cafe2a /client | |
parent | a45084e4beb3fa16962735d7cebfa9fdac73dc6c (diff) |
[refactor] stop using a dict for syncers
A dict was used to store references for the synchronizers based on a
URL. This commit removes it as it doesnt make sense with current code.
Diffstat (limited to 'client')
-rw-r--r-- | client/src/leap/soledad/client/sqlcipher.py | 49 |
1 files changed, 10 insertions, 39 deletions
diff --git a/client/src/leap/soledad/client/sqlcipher.py b/client/src/leap/soledad/client/sqlcipher.py index f4a3ba6e..6caa39cd 100644 --- a/client/src/leap/soledad/client/sqlcipher.py +++ b/client/src/leap/soledad/client/sqlcipher.py @@ -42,9 +42,7 @@ SQLCipher 1.1 databases, we do not implement them as all SQLCipher databases handled by Soledad should be created by SQLCipher >= 2.0. """ import os -import json -from hashlib import sha256 from functools import partial from pysqlcipher import dbapi2 as sqlcipher_dbapi2 @@ -409,13 +407,6 @@ class SQLCipherU1DBSync(SQLCipherDatabase): self._sync_db = sync_db - # we store syncers in a dictionary indexed by the target URL. We also - # store a hash of the auth info in case auth info expires and we need - # to rebuild the syncer for that target. The final self._syncers - # format is the following: - # - # self._syncers = {'<url>': ('<auth_hash>', syncer), ...} - self._syncers = {} # storage for the documents received during a sync self.received_docs = [] @@ -495,28 +486,16 @@ class SQLCipherU1DBSync(SQLCipherDatabase): :return: A synchronizer. :rtype: Synchronizer """ - # we want to store at most one syncer for each url, so we also store a - # hash of the connection credentials and replace the stored syncer for - # a certain url if credentials have changed. - h = sha256(json.dumps([url, creds])).hexdigest() - cur_h, syncer = self._syncers.get(url, (None, None)) - if syncer is None or h != cur_h: - syncer = SoledadSynchronizer( - self, - SoledadHTTPSyncTarget( - url, - # XXX is the replica_uid ready? - self._replica_uid, - creds=creds, - crypto=self._crypto, - cert_file=self._cert_file, - sync_db=self._sync_db)) - 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 + return SoledadSynchronizer( + self, + SoledadHTTPSyncTarget( + url, + # XXX is the replica_uid ready? + self._replica_uid, + creds=creds, + crypto=self._crypto, + cert_file=self._cert_file, + sync_db=self._sync_db)) # # Symmetric encryption of syncing docs @@ -527,14 +506,6 @@ class SQLCipherU1DBSync(SQLCipherDatabase): # XXX this SHOULD BE a callback return self._get_generation() - def close(self): - """ - Close the syncer and syncdb orderly - """ - super(SQLCipherU1DBSync, self).close() - # close all open syncers - self._syncers = {} - class U1DBSQLiteBackend(sqlite_backend.SQLitePartialExpandDatabase): """ |