node: Combine event with sync status change
Use the same logic to check whether the sync status was updated, to emit the `RefsSynced` event. That way they are at least consistent.
This commit is contained in:
parent
474df7fc3c
commit
a4928f50b6
|
|
@ -1285,7 +1285,7 @@ where
|
||||||
match self.db.addresses().get(announcer) {
|
match self.db.addresses().get(announcer) {
|
||||||
Ok(node) => {
|
Ok(node) => {
|
||||||
if node.is_none() {
|
if node.is_none() {
|
||||||
trace!(target: "service", "Ignoring announcement from unknown node {announcer}");
|
debug!(target: "service", "Ignoring announcement from unknown node {announcer}");
|
||||||
return Ok(false);
|
return Ok(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1408,6 +1408,11 @@ where
|
||||||
"Updating sync status of {announcer} for {} to {}",
|
"Updating sync status of {announcer} for {} to {}",
|
||||||
message.rid, refs.at
|
message.rid, refs.at
|
||||||
);
|
);
|
||||||
|
self.emitter.emit(Event::RefsSynced {
|
||||||
|
rid: message.rid,
|
||||||
|
remote: *announcer,
|
||||||
|
at: refs.at,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
|
|
@ -1431,21 +1436,6 @@ where
|
||||||
return Ok(relay);
|
return Ok(relay);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
// If the ref announcement indicates that the announcer already has
|
|
||||||
// our *owned* refs, then we emit an event, which can be used to
|
|
||||||
// show sync status to the user.
|
|
||||||
if let Some(at) = stale
|
|
||||||
.iter()
|
|
||||||
.find(|refs| &refs.remote == self.nid())
|
|
||||||
.copied()
|
|
||||||
.map(|RefsAt { at, .. }| at)
|
|
||||||
{
|
|
||||||
self.emitter.emit(Event::RefsSynced {
|
|
||||||
rid: message.rid,
|
|
||||||
remote: *announcer,
|
|
||||||
at,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Refs can be relayed by peers who don't have the data in storage,
|
// Refs can be relayed by peers who don't have the data in storage,
|
||||||
// therefore we only check whether we are connected to the *announcer*,
|
// therefore we only check whether we are connected to the *announcer*,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue