Skip to content

Commit 727efc0

Browse files
committed
feat(protocol): add client name for handshake reply, keepalive for App to show
1 parent bc1647c commit 727efc0

File tree

3 files changed

+7
-0
lines changed

3 files changed

+7
-0
lines changed

src/client/relay.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ impl RelayClient {
7373

7474
tracing::debug!("sending keepalive frame");
7575
let keepalive_frame = Frame::KeepAlive(KeepAliveFrame {
76+
name: "".to_string(),
7677
identity: self.cfg.identity.clone(),
7778
ipv6: current_ipv6.clone(),
7879
port,

src/codec/frame.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ pub struct HandshakeFrame {
138138
/// and communicate with other VPN nodes.
139139
#[derive(Debug, Serialize, Deserialize, Clone)]
140140
pub struct HandshakeReplyFrame {
141+
pub name: String,
141142
/// Private IP address assigned to this client
142143
///
143144
/// This is the client's virtual IP within the VPN network
@@ -209,6 +210,7 @@ pub struct PeerDetail {
209210
/// direct P2P connections.
210211
#[derive(Debug, Clone, Serialize, Deserialize)]
211212
pub struct KeepAliveFrame {
213+
pub name: String,
212214
/// Peer identity (unique identifier)
213215
pub identity: String,
214216

src/server/server.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ impl Handler {
142142

143143
self.conn
144144
.write_frame(HandshakeReply(HandshakeReplyFrame {
145+
name: client_config.name.clone(),
145146
private_ip: client_config.private_ip.clone(),
146147
mask: client_config.mask.clone(),
147148
gateway: client_config.gateway.clone(),
@@ -264,6 +265,7 @@ impl Handler {
264265
frame.identity, frame.ipv6, frame.port, frame.stun_ip, frame.stun_port);
265266

266267
let client = self.client_manager.get_client(&frame.identity);
268+
let mut name = String::new();
267269
if let Some(client) = client {
268270
let _ = self.connection_manager.update_connection_info(
269271
&client.cluster,
@@ -274,6 +276,7 @@ impl Handler {
274276
frame.stun_ip.clone(),
275277
frame.stun_port,
276278
);
279+
name = client.name.clone();
277280
}
278281

279282
// Reply keepalive with full peer details for route sync
@@ -284,6 +287,7 @@ impl Handler {
284287
};
285288

286289
let reply_frame = Frame::KeepAlive(KeepAliveFrame {
290+
name: name.clone(),
287291
identity: frame.identity,
288292
ipv6: frame.ipv6,
289293
port: frame.port,

0 commit comments

Comments
 (0)