diff options
author | drebs <drebs@leap.se> | 2014-11-25 16:22:15 -0200 |
---|---|---|
committer | Kali Kaneko <kali@leap.se> | 2015-02-11 14:03:18 -0400 |
commit | c24452af4da078eaf15aa0841d8f8482886735f4 (patch) | |
tree | cf82a81858448a82eb2baca4834adcbeacee6c51 /client/src | |
parent | 5247c231639fc9fd8c4279190af50afa99783bd6 (diff) |
Several fixes in SoledadSyncTarget:
* Fix arg passing to syncing failure method.
* Do not try to start sync loop which should be already running.
* Adapt to removal of old multiprocessing safe db, now accesses the
sqlcipher database directly.
Diffstat (limited to 'client/src')
-rw-r--r-- | client/src/leap/soledad/client/target.py | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/client/src/leap/soledad/client/target.py b/client/src/leap/soledad/client/target.py index ba61cdff..dd61c070 100644 --- a/client/src/leap/soledad/client/target.py +++ b/client/src/leap/soledad/client/target.py @@ -188,7 +188,7 @@ class DocumentSyncerThread(threading.Thread): self._doc_syncer.failure_callback( self._idx, self._total, self._exception) - self._failed_method(self) + self._failed_method() # we do not release the callback lock here because we # failed and so we don't want other threads to succeed. @@ -1296,7 +1296,6 @@ class SoledadSyncTarget(HTTPSyncTarget, TokenBasedAuth): # decrypt docs in case of deferred decryption if defer_decryption: - self._sync_loop.start() while self.clear_to_sync() is False: sleep(self.DECRYPT_LOOP_PERIOD) self._teardown_sync_loop() @@ -1362,11 +1361,11 @@ class SoledadSyncTarget(HTTPSyncTarget, TokenBasedAuth): encr = SyncEncrypterPool sql = ("SELECT content FROM %s WHERE doc_id=? and rev=?" % ( encr.TABLE_NAME,)) - res = self._sync_db.select(sql, (doc_id, doc_rev)) - try: - val = res.next() + res = self._fetchall(sql, (doc_id, doc_rev)) + if res: + val = res.pop() return val[0] - except StopIteration: + else: # no doc found return None @@ -1508,3 +1507,9 @@ class SoledadSyncTarget(HTTPSyncTarget, TokenBasedAuth): :type token: str """ TokenBasedAuth.set_token_credentials(self, uuid, token) + + def _fetchall(self, *args, **kwargs): + with self._sync_db: + c = self._sync_db.cursor() + c.execute(*args, **kwargs) + return c.fetchall() |