File tree Expand file tree Collapse file tree 1 file changed +21
-2
lines changed
crates/core/src/operations Expand file tree Collapse file tree 1 file changed +21
-2
lines changed Original file line number Diff line number Diff line change @@ -786,10 +786,29 @@ impl OpManager {
786786 . subscribers_of ( key)
787787 . map ( |subs| {
788788 let self_peer = self . ring . connection_manager . get_peer_key ( ) ;
789+ let allow_self = self_peer. as_ref ( ) . map ( |me| me == sender) . unwrap_or ( false ) ;
789790 subs. value ( )
790791 . iter ( )
791- . filter ( |pk| & pk. peer != sender)
792- . filter ( |pk| self_peer. as_ref ( ) . map ( |me| & pk. peer != me) . unwrap_or ( true ) )
792+ . filter ( |pk| {
793+ // Allow the sender to remain in the broadcast list when we're the sender,
794+ // so local auto-subscribe via GET/PUT still receives notifications.
795+ if & pk. peer == sender {
796+ allow_self
797+ } else {
798+ true
799+ }
800+ } )
801+ . filter ( |pk| {
802+ if let Some ( self_peer) = & self_peer {
803+ if & pk. peer == self_peer {
804+ allow_self
805+ } else {
806+ true
807+ }
808+ } else {
809+ true
810+ }
811+ } )
793812 . cloned ( )
794813 . collect :: < Vec < _ > > ( )
795814 } )
You can’t perform that action at this time.
0 commit comments