summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor Shyba <victor.shyba@gmail.com>2016-09-17 04:25:00 -0300
committerVictor Shyba <victor1984@riseup.net>2016-11-18 15:55:52 -0300
commit0c17692f7fc110f7fc9467d4537b24849d2bdb95 (patch)
treef994ba448fc4a1042aaed240e8b3bcba89900463
parent063ccbc1a3a6ad8be836f344edeed851adbd90d5 (diff)
[bug] use an empty string to represent tumbstones
If a doc doesnt have a content it means it was deleted. Sync stream was unable to represent this state.
-rw-r--r--client/src/leap/soledad/client/http_target/fetch.py2
-rw-r--r--server/src/leap/soledad/server/sync.py3
2 files changed, 3 insertions, 2 deletions
diff --git a/client/src/leap/soledad/client/http_target/fetch.py b/client/src/leap/soledad/client/http_target/fetch.py
index 24d73025..26606e9b 100644
--- a/client/src/leap/soledad/client/http_target/fetch.py
+++ b/client/src/leap/soledad/client/http_target/fetch.py
@@ -205,7 +205,7 @@ class HTTPDocFetcher(object):
line, comma = utils.check_and_strip_comma(data[index])
content, _ = utils.check_and_strip_comma(data[index + 1])
entry = json.loads(line)
- entries.append((entry['id'], entry['rev'], content,
+ entries.append((entry['id'], entry['rev'], content or None,
entry['gen'], entry['trans_id']))
except (IndexError, KeyError):
raise errors.BrokenSyncStream
diff --git a/server/src/leap/soledad/server/sync.py b/server/src/leap/soledad/server/sync.py
index 253139a9..77d4b840 100644
--- a/server/src/leap/soledad/server/sync.py
+++ b/server/src/leap/soledad/server/sync.py
@@ -251,7 +251,8 @@ class SyncResource(http_app.SyncResource):
entry = dict(id=doc.doc_id, rev=doc.rev,
gen=gen, trans_id=trans_id)
self.responder.stream_entry(entry)
- self.responder.stream_entry(doc.get_json().read())
+ content = doc.get_json()
+ self.responder.stream_entry(content.read() if content else '')
new_gen, number_of_changes = \
self.sync_exch.find_changes_to_return(received)