diff options
| author | DanConwayDev <DanConwayDev@protonmail.com> | 2025-12-10 13:25:10 +0000 |
|---|---|---|
| committer | DanConwayDev <DanConwayDev@protonmail.com> | 2025-12-10 13:25:10 +0000 |
| commit | 37aab149ca94ce60a2587f2c1799d5f56baac6ad (patch) | |
| tree | 53f3138c1caa5431fd6f74b0086ffb0da0f38c9b /src | |
| parent | 67f7ebdaeff7b17af077c6ae7d2ecdf786ddf2ef (diff) | |
fix: add Layer 1 re-subscription on quick reconnect (BUG-1)
Diffstat (limited to 'src')
| -rw-r--r-- | src/sync/mod.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/sync/mod.rs b/src/sync/mod.rs index 9a8857c..b967d4f 100644 --- a/src/sync/mod.rs +++ b/src/sync/mod.rs | |||
| @@ -1062,6 +1062,18 @@ impl SyncManager { | |||
| 1062 | "Quick reconnect - using since filter for incremental sync" | 1062 | "Quick reconnect - using since filter for incremental sync" |
| 1063 | ); | 1063 | ); |
| 1064 | 1064 | ||
| 1065 | // Subscribe to Layer 1 (announcements) with since filter to catch new repos | ||
| 1066 | let layer1_filter = filters::build_announcement_filter(Some(since_ts)); | ||
| 1067 | if let Some(connection) = self.connections.get(relay_url) { | ||
| 1068 | if let Err(e) = connection.subscribe_filter(layer1_filter).await { | ||
| 1069 | tracing::error!( | ||
| 1070 | relay = %relay_url, | ||
| 1071 | error = %e, | ||
| 1072 | "Failed to subscribe to Layer 1 filter on quick reconnect" | ||
| 1073 | ); | ||
| 1074 | } | ||
| 1075 | } | ||
| 1076 | |||
| 1065 | // Rebuild Layer 2 and Layer 3 with since filter | 1077 | // Rebuild Layer 2 and Layer 3 with since filter |
| 1066 | self.rebuild_layer2_and_layer3(relay_url, Some(since_ts)) | 1078 | self.rebuild_layer2_and_layer3(relay_url, Some(since_ts)) |
| 1067 | .await; | 1079 | .await; |