send initial interest to prevent updates being missed
authorGeoffrey Allott <geoffrey@allott.email>
Fri, 5 Feb 2021 17:05:48 +0000 (17:05 +0000)
committerGeoffrey Allott <geoffrey@allott.email>
Fri, 5 Feb 2021 17:05:48 +0000 (17:05 +0000)
src/main.rs

index 4fe04b5b012be16cc759028a273471c8a8ffa1c7..793244c5c6edeab067171b0c9b2661c6ace37708 100644 (file)
@@ -98,6 +98,14 @@ pub async fn handle_client_interest(mut connection: PubSub, mut new_clients: Rec
                         error!("handle_client_interest: Unsubscribe failed: {}", err);
                     }
                 }
+                let client = &mut clients[index];
+                let sender = &mut client.sender;
+                for interest in &client.interests - &client_interests {
+                    debug!("handle_client_interest: Sending initial interest for new interest {:?} to {:?}", interest, sender);
+                    if let Err(err) = sender.interest.send(interest.clone()).await {
+                        error!("handle_client_interest: Send failed: {}", err);
+                    }
+                }
             }
             Action::SendInterest{interest} => {
                 debug!("handle_client_interest: Action::SendInterest {{ interest: {:?} }}", interest);