whois: show a remote user's actual server description in 312, not the literal "remote user"
This commit is contained in:
parent
ddb6214b47
commit
73817eddde
1 changed files with 6 additions and 4 deletions
|
|
@ -111,20 +111,22 @@ impl Command for Whois {
|
||||||
// maybe they're on another server
|
// maybe they're on another server
|
||||||
if let Some((uuid, _)) = s.find_remote(&tnick) {
|
if let Some((uuid, _)) = s.find_remote(&tnick) {
|
||||||
if let Some(ru) = s.remote_users.get(&uuid) {
|
if let Some(ru) = s.remote_users.get(&uuid) {
|
||||||
let srv = s
|
let (srv, sdesc) = s
|
||||||
.servers
|
.servers
|
||||||
.get(&ru.sid)
|
.get(&ru.sid)
|
||||||
.map(|sv| sv.name.clone())
|
.map(|sv| (sv.name.clone(), sv.desc.clone()))
|
||||||
.unwrap_or_else(|| ru.sid.clone());
|
.unwrap_or_else(|| (ru.sid.clone(), "remote server".to_string()));
|
||||||
s.numeric(
|
s.numeric(
|
||||||
uid,
|
uid,
|
||||||
RPL_WHOISUSER,
|
RPL_WHOISUSER,
|
||||||
&format!("{} {} {} * :{}", ru.nick, ru.ident, ru.host, ru.realname),
|
&format!("{} {} {} * :{}", ru.nick, ru.ident, ru.host, ru.realname),
|
||||||
);
|
);
|
||||||
|
// 312: the user's server and its description (not a placeholder —
|
||||||
|
// the actual server info, so a services user reads as its server).
|
||||||
s.numeric(
|
s.numeric(
|
||||||
uid,
|
uid,
|
||||||
RPL_WHOISSERVER,
|
RPL_WHOISSERVER,
|
||||||
&format!("{} {srv} :remote user", ru.nick),
|
&format!("{} {srv} :{sdesc}", ru.nick),
|
||||||
);
|
);
|
||||||
// 313: a user on a U-lined services server is "a network service"
|
// 313: a user on a U-lined services server is "a network service"
|
||||||
// — its oper line reads as a service, not an operator.
|
// — its oper line reads as a service, not an operator.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue