aboutsummaryrefslogtreecommitdiffstats
path: root/src/swarm
diff options
context:
space:
mode:
Diffstat (limited to 'src/swarm')
-rw-r--r--src/swarm/sync.rs14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/swarm/sync.rs b/src/swarm/sync.rs
index ffdbf07..75c20f1 100644
--- a/src/swarm/sync.rs
+++ b/src/swarm/sync.rs
@@ -641,10 +641,11 @@ pub(crate) async fn handle_sync(
replica
.logged_signed(|doc, known, log| {
let result = (|| {
- // Judged first, as the policy has it (`access::screen`); with
- // signatures required, by those it sent too.
+ // Judged first, each as the policy it was written under has it
+ // (`access::screen`), whether this document has one yet or not;
+ // with signatures required, by those it sent too.
let policy = crate::access::policy::of(&*doc);
- if policy.enforced() {
+ {
let bytes = message.take_changes();
let required = policy.required();
if required {
@@ -955,8 +956,9 @@ async fn download_and_apply_delta(
}
let heads_before = replica.heads().to_vec();
let policy = crate::access::policy::of(&replica.doc);
- if policy.enforced() {
- // Judged first (`access::screen`).
+ {
+ // Judged first (`access::screen`), whether this document has a policy yet or
+ // not.
let epoch_seq = replica.epoch_seq;
let replica = &mut *replica;
crate::access::screen::apply_bytes(
@@ -968,8 +970,6 @@ async fn download_and_apply_delta(
policy.required().then_some(&mut replica.signatures),
&mut crate::document::PatchLog::inactive(),
)?;
- } else {
- crate::document::changes::load_delta(&mut replica.doc, &bytes)?;
}
replica.refresh_heads();
// Signatures waiting for what it brought (`Signatures::offer`).