allow sync conn with conn list when conn bitmap is too large (#1508)

This commit is contained in:
Sijie.Sun
2025-10-23 08:11:36 +08:00
committed by GitHub
parent 7485f5f64e
commit 71679e889a
5 changed files with 289 additions and 105 deletions
+1
View File
@@ -203,6 +203,7 @@ message PeerFeatureFlag {
bool avoid_relay_data = 2;
bool kcp_input = 3;
bool no_relay_kcp = 4;
bool support_conn_list_sync = 5;
}
enum SocketType {
+12 -1
View File
@@ -39,6 +39,14 @@ message RouteConnBitmap {
bytes bitmap = 2;
}
message RouteConnPeerList {
message PeerConnInfo {
PeerIdVersion peer_id = 1;
repeated uint32 connected_peer_ids = 2;
}
repeated PeerConnInfo peer_conn_infos = 1;
}
message RoutePeerInfos { repeated RoutePeerInfo items = 1; }
message ForeignNetworkRouteInfoKey {
@@ -82,7 +90,10 @@ message SyncRouteInfoRequest {
uint64 my_session_id = 2;
bool is_initiator = 3;
RoutePeerInfos peer_infos = 4;
RouteConnBitmap conn_bitmap = 5;
oneof conn_info {
RouteConnBitmap conn_bitmap = 5;
RouteConnPeerList conn_peer_list = 7;
}
RouteForeignNetworkInfos foreign_network_infos = 6;
}
+12
View File
@@ -38,6 +38,18 @@ impl PeerGroupInfo {
}
}
impl From<RouteConnBitmap> for sync_route_info_request::ConnInfo {
fn from(val: RouteConnBitmap) -> Self {
Self::ConnBitmap(val)
}
}
impl From<RouteConnPeerList> for sync_route_info_request::ConnInfo {
fn from(val: RouteConnPeerList) -> Self {
Self::ConnPeerList(val)
}
}
#[cfg(test)]
mod tests {
use super::*;