From 9b7d8bfa237ea2a3062298bb6cd9b519fba8dee9 Mon Sep 17 00:00:00 2001 From: Jeremy Lakeman Date: Wed, 10 May 2017 15:21:21 +0930 Subject: [PATCH] Resume activity newsince when acking our own message --- meshmb.c | 7 ++++++- tests/meshmbrestful | 5 ++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/meshmb.c b/meshmb.c index 6edbf396..869f4097 100644 --- a/meshmb.c +++ b/meshmb.c @@ -82,7 +82,7 @@ static int activity_next_ack(struct meshmb_activity_iterator *i){ } } - if (memcmp(&i->msg_reader.bundle_id, bundle_id, sizeof *bundle_id)==0){ + if (cmp_rhizome_bid_t(&i->msg_reader.bundle_id, bundle_id)==0){ // shortcut for consecutive acks for the same incoming feed DEBUGF(meshmb, "Ply still open @%"PRIu64, i->msg_reader.read.offset); }else{ @@ -187,6 +187,9 @@ static int finish_ack_writing(struct meshmb_feeds *feeds){ rhizome_manifest_free(feeds->ack_manifest); feeds->ack_manifest = NULL; + if (!feeds->dirty) + feeds->generation++; + return ret; } @@ -353,6 +356,8 @@ int meshmb_bundle_update(struct meshmb_feeds *feeds, rhizome_manifest *m, struct } return 1; } + if (cmp_rhizome_bid_t(&m->keypair.public_key, &feeds->ack_bundle_keypair.public_key)==0) + return 1; return 0; } diff --git a/tests/meshmbrestful b/tests/meshmbrestful index b7ebde93..38781175 100755 --- a/tests/meshmbrestful +++ b/tests/meshmbrestful @@ -288,11 +288,13 @@ test_MeshMBRestNewActivity() { executeOk_servald meshmb send $IDA3 "Message 4" executeOk_servald meshmb send $IDA2 "Message 5" executeOk_servald meshmb send $IDA3 "Message 6" + executeOk_servald meshmb send $IDA1 "Message 7" for i in 1 2 3; do wait_until grep "Message 3" newsince$i.json wait_until grep "Message 4" newsince$i.json wait_until grep "Message 5" newsince$i.json wait_until grep "Message 6" newsince$i.json + wait_until grep "Message 7" newsince$i.json done fork_terminate_all fork_wait_all @@ -305,11 +307,12 @@ test_MeshMBRestNewActivity() { tfw_preserve newsince$i.json objects$i.json done for i in 1 2 3; do - assert [ "$(jq '.rows | length' newsince$i.json)" = 4 ] + assert [ "$(jq '.rows | length' newsince$i.json)" = 5 ] assertJq objects$i.json "contains([{ id: \"$IDA2\", author: \"$SIDA2\", name: \"Feed B\", message: \"Message 3\"}])" assertJq objects$i.json "contains([{ id: \"$IDA3\", author: \"$SIDA3\", name: \"Feed C\", message: \"Message 4\"}])" assertJq objects$i.json "contains([{ id: \"$IDA2\", author: \"$SIDA2\", name: \"Feed B\", message: \"Message 5\"}])" assertJq objects$i.json "contains([{ id: \"$IDA3\", author: \"$SIDA3\", name: \"Feed C\", message: \"Message 6\"}])" + assertJq objects$i.json "contains([{ id: \"$IDA1\", author: \"$SIDA1\", name: \"Feed A\", message: \"Message 7\"}])" done }