feat(pushsync): forward chunk after storing
Checklist
- [x] I have read the coding guide.
- [ ] My change requires a documentation update, and I have done it.
- [x] I have added tests to cover my changes.
- [x] I have filled out the description and linked the related issues.
Description
Currently, we return from pushsync as soon as node lands in a neighborhood and is stored by the first node which is not necessarily the closest to the chunk. One effect of this is that gsoc does not work reliably with pushsync as the listening node does not receive the chunk.
In this PR, the in-neighborhood node will forward the chunk to its closest peer after storing it. Also, a node will multiplex only if the node is not in AOR to prevent circular pushes. So it's 1 extra push from before.
Open API Spec Version Changes (if applicable)
Motivation and Context (Optional)
Related Issue (Optional)
fixes #5067
Screenshots (if appropriate):
a test case may be needed where peers pass the chunk to node with addr 71 and that is in connection with node 70 and in the same neighborhood. node 71 should forward the chunk to node 70 since that is the closest to the chunk address.
It was already tested in the other PR. I've brought those changes here now.
LGTM , but needs more testing