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/src | |
| 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/src')
| -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):      """ | 
