Skip to content

Commit cf6a1a1

Browse files
committed
fix(server): update ciders for online connection
1 parent 00e5fe3 commit cf6a1a1

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

src/codec/parser.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ impl Parser {
4141
let payload_size = u16::from_be_bytes([buf[6], buf[7]]);
4242

4343
if !Self::validate(magic, version, payload_size, buf) {
44-
tracing::warn!("validate header fail: magic = {} version={} payload_size={} buf size={}", magic, version, payload_size, buf.len());
44+
tracing::debug!("validate header fail: magic = {} version={} payload_size={} buf size={}", magic, version, payload_size, buf.len());
4545
return Err(FrameError::Invalid.into());
4646
}
4747

src/network/connection_manager.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ impl ConnectionManager {
106106
/// * `Some(Vec<ConnectionMeta>)` - List of other connections in the cluster if the address changed
107107
/// * `None` - If the address didn't change or the connection wasn't found
108108
pub fn update_connection_info(&self, cluster: &str, identity: &String,
109+
ciders: Vec<String>,
109110
ipv6: String, port: u16,
110111
stun_ip: String, stun_port: u16) -> Option<Vec<ConnectionMeta>> {
111112
let mut cluster_map = self
@@ -131,6 +132,11 @@ impl ConnectionManager {
131132
conn.stun_port = stun_port;
132133
}
133134

135+
if conn.ciders != ciders {
136+
changed = true;
137+
conn.ciders = ciders;
138+
}
139+
134140
if !changed {
135141
return None;
136142
}

src/server/server.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -262,12 +262,12 @@ impl Handler {
262262
tracing::info!("on keepalive from {} {}:{} {}:{}",
263263
frame.identity, frame.ipv6, frame.port, frame.stun_ip, frame.stun_port);
264264

265-
// Update connection metadata with latest IPv6 and port from keepalive
266-
// If the address changed, notify other clients in the cluster
267-
if let Some(cluster) = &self.cluster {
265+
let client = self.client_manager.get_client(&frame.identity);
266+
if let Some(client) = client {
268267
let _ = self.connection_manager.update_connection_info(
269-
cluster,
268+
&client.cluster,
270269
&frame.identity,
270+
client.ciders.clone(),
271271
frame.ipv6.clone(),
272272
frame.port,
273273
frame.stun_ip.clone(),

0 commit comments

Comments
 (0)