1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-07-06 13:53:12 +02:00

Update hunt_server() so command is really the command (eg "LUSERS") and

not a format string (eg ":%s LUSERS %s"). It now simply concats all parv[]'s.
That is, up to parc count. And it automatically does the :stuff for the
last parameter if it contains spaces or starts with a : etc.

This gets rid of a bit sketchy code with an arbitrary maximum etc.

Now it's just:
if (hunt_server(client, NULL, "REHASH", 1, parc, parv) != HUNTED_ISME)
	return;

This has one side effect, though:
Previously we used the format string, so it may be possible for S2S
traffic to now have more arguments then before here and there.
Eg:
* It could be that the caller was using a format string to
  intentionally cut off an extra parameter at the end.
  You can still do that if you call with eg parc-1 instead of parc.
  I don't think there were any such cases though, but hard to rule out.
* Extranous parameters may show up in S2S traffic where it was
  previously unexpected.
This commit is contained in:
Bram Matthys
2021-09-25 14:49:19 +02:00
parent b5375de52d
commit 8603c2eb71
20 changed files with 71 additions and 39 deletions
+1 -1
View File
@@ -59,7 +59,7 @@ CMD_FUNC(cmd_lusers)
{
char flatmap;
if (hunt_server(client, recv_mtags, ":%s LUSERS :%s", 1, parc, parv) != HUNTED_ISME)
if (hunt_server(client, recv_mtags, "LUSERS", 1, parc, parv) != HUNTED_ISME)
return;
flatmap = (FLAT_MAP && !ValidatePermissionsForPath("server:info:lusers",client,NULL,NULL,NULL)) ? 1 : 0;