diff --git a/src/irc/core/servers-redirect.c b/src/irc/core/servers-redirect.c index 50560883..4c59e3b8 100644 --- a/src/irc/core/servers-redirect.c +++ b/src/irc/core/servers-redirect.c @@ -706,6 +706,14 @@ void servers_redirect_init(void) NULL, /* */ NULL); + /* NAMES */ + server_redirect_register("names", TRUE, 0, + "event 353", -1, /* An element of NAMES */ + NULL, + "event 366", 1, /* End of NAMES */ + NULL, + NULL); + /* LIST */ server_redirect_register("list", FALSE, 0, "event 321", 1, /* Begins the LIST */ diff --git a/src/irc/proxy/listen.c b/src/irc/proxy/listen.c index 19aba87d..a6b3a308 100644 --- a/src/irc/proxy/listen.c +++ b/src/irc/proxy/listen.c @@ -304,14 +304,14 @@ static void handle_client_cmd(CLIENT_REC *client, char *cmd, char *args, grab_who(client, args); else if (g_strcmp0(cmd, "WHOWAS") == 0) proxy_redirect_event(client, "whowas", 1, args, -1); - else if (g_strcmp0(cmd, "WHOIS") == 0) { + else if (g_strcmp0(cmd, "WHOIS") == 0 || g_strcmp0(cmd, "NAMES") == 0) { char *p; /* convert dots to spaces */ for (p = args; *p != '\0'; p++) if (*p == ',') *p = ' '; - proxy_redirect_event(client, "whois", 1, args, TRUE); + proxy_redirect_event(client, *cmd == 'N' ? "names" : "whois", 1, args, TRUE); } else if (g_strcmp0(cmd, "ISON") == 0) proxy_redirect_event(client, "ison", 1, args, -1); else if (g_strcmp0(cmd, "USERHOST") == 0)