1
0
mirror of https://github.com/osmarks/ngircd.git synced 2025-01-19 12:02:52 +00:00

WHOIS command: make sure matching is case-insensitive

And make sure that RPL_ENDOFWHOIS replies with the unmodified mask
like it has been received from the client.
This commit is contained in:
Alexander Barton 2012-01-05 00:51:39 +01:00
parent adf92302bf
commit 9fbf592924

View File

@ -1129,7 +1129,7 @@ IRC_WHOIS( CLIENT *Client, REQUEST *Req )
unsigned int match_count = 0, found = 0; unsigned int match_count = 0, found = 0;
bool has_wildcards, is_remote; bool has_wildcards, is_remote;
bool got_wildcard = false; bool got_wildcard = false;
const char *query; char mask[COMMAND_LEN], *query;
assert( Client != NULL ); assert( Client != NULL );
assert( Req != NULL ); assert( Req != NULL );
@ -1170,7 +1170,8 @@ IRC_WHOIS( CLIENT *Client, REQUEST *Req )
Req->argv[0], Req->argv[1]); Req->argv[0], Req->argv[1]);
is_remote = Client_Conn(from) < 0; is_remote = Client_Conn(from) < 0;
for (query = strtok(Req->argv[Req->argc - 1], ","); strlcpy(mask, Req->argv[Req->argc - 1], sizeof(mask));
for (query = strtok(ngt_LowerStr(mask), ",");
query && found < 3; query && found < 3;
query = strtok(NULL, ","), found++) query = strtok(NULL, ","), found++)
{ {