From baed3ef9ac4550dc36a45b758436769e82e8ec58 Mon Sep 17 00:00:00 2001 From: Val Lorentz Date: Sat, 14 Dec 2024 20:02:20 +0100 Subject: [PATCH] Fix LINKS syntax to match https://github.com/ircdocs/modern-irc/pull/245 --- sable_ircd/src/command/handlers/links.rs | 20 +++++++++++++------- sable_ircd/src/messages/numeric.rs | 4 ++-- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/sable_ircd/src/command/handlers/links.rs b/sable_ircd/src/command/handlers/links.rs index d200b49..d6e8db9 100644 --- a/sable_ircd/src/command/handlers/links.rs +++ b/sable_ircd/src/command/handlers/links.rs @@ -4,19 +4,25 @@ use sable_network::prelude::wrapper::ObjectWrapper; #[command_handler("LINKS")] fn handle_links( response: &dyn CommandResponse, - server: &ClientServer, + local_server: &ClientServer, net: &Network, source: UserSource, ) -> CommandResult { - server.policy().can_list_links(&source)?; + local_server.policy().can_list_links(&source)?; - for server in net.servers() { - let server_info = format!( + for remote_server in net.servers() { + let remote_server_info = format!( "last_ping={}, version={}", - server.last_ping(), - server.raw().version + remote_server.last_ping(), + remote_server.raw().version ); - response.numeric(make_numeric!(Links, server.name(), 0, &server_info)); + response.numeric(make_numeric!( + Links, + remote_server.name(), + local_server.name(), + 0, + &remote_server_info + )); } response.numeric(make_numeric!(EndOfLinks)); diff --git a/sable_ircd/src/messages/numeric.rs b/sable_ircd/src/messages/numeric.rs index 7315526..edfbc93 100644 --- a/sable_ircd/src/messages/numeric.rs +++ b/sable_ircd/src/messages/numeric.rs @@ -51,8 +51,8 @@ define_messages! { => "{chname} {user} {host} * {nick} {status} :{hopcount} {realname}" }, 353(NamesReply) => { (is_pub: char, chan: &Channel.name(), content: &str) => "{is_pub} {chan} :{content}" }, - 364(Links) => { (server_name: &ServerName, hopcount: u64, server_info: &str) - => "* {server_name} :{hopcount} {server_info}" }, + 364(Links) => { (remote_server_name: &ServerName, local_server_name: &ServerName, hopcount: u64, remote_server_info: &str) + => "{remote_server_name} {local_server_name} :{hopcount} {remote_server_info}" }, 365(EndOfLinks) => { () => "* :End of /LINKS list" }, 366(EndOfNames) => { (chname: &str) => "{chname} :End of names list" },