mirror of
https://github.com/unrealircd/unrealircd.git
synced 2026-07-04 02:43:14 +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:
+1
-1
@@ -61,7 +61,7 @@ CMD_FUNC(cmd_admin)
|
||||
|
||||
if (IsUser(client))
|
||||
{
|
||||
if (hunt_server(client, recv_mtags, ":%s ADMIN :%s", 1, parc, parv) != HUNTED_ISME)
|
||||
if (hunt_server(client, recv_mtags, "ADMIN", 1, parc, parv) != HUNTED_ISME)
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ CMD_FUNC(cmd_botmotd)
|
||||
MOTDLine *motdline;
|
||||
ConfigItem_tld *tld;
|
||||
|
||||
if (hunt_server(client, recv_mtags, ":%s BOTMOTD :%s", 1, parc, parv) != HUNTED_ISME)
|
||||
if (hunt_server(client, recv_mtags, "BOTMOTD", 1, parc, parv) != HUNTED_ISME)
|
||||
return;
|
||||
|
||||
if (!IsUser(client))
|
||||
|
||||
@@ -76,7 +76,7 @@ CMD_FUNC(cmd_connect)
|
||||
sendnumeric(client, ERR_NOPRIVILEGES);
|
||||
return;
|
||||
}
|
||||
if (hunt_server(client, recv_mtags, ":%s CONNECT %s %s :%s", 3, parc, parv) != HUNTED_ISME)
|
||||
if (hunt_server(client, recv_mtags, "CONNECT", 3, parc, parv) != HUNTED_ISME)
|
||||
return;
|
||||
|
||||
if (parc < 2 || *parv[1] == '\0')
|
||||
|
||||
+1
-1
@@ -78,7 +78,7 @@ CMD_FUNC(cmd_lag)
|
||||
return;
|
||||
}
|
||||
|
||||
if (hunt_server(client, recv_mtags, ":%s LAG :%s", 1, parc, parv) == HUNTED_NOSUCH)
|
||||
if (hunt_server(client, recv_mtags, "LAG", 1, parc, parv) == HUNTED_NOSUCH)
|
||||
return;
|
||||
|
||||
sendnotice(client, "Lag reply -- %s %s %lld", me.name, parv[1], (long long)TStime());
|
||||
|
||||
@@ -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;
|
||||
|
||||
+1
-1
@@ -66,7 +66,7 @@ CMD_FUNC(cmd_motd)
|
||||
if (IsServer(client))
|
||||
return;
|
||||
|
||||
if (hunt_server(client, recv_mtags, ":%s MOTD :%s", 1, parc, parv) != HUNTED_ISME)
|
||||
if (hunt_server(client, recv_mtags, "MOTD", 1, parc, parv) != HUNTED_ISME)
|
||||
{
|
||||
if (MyUser(client))
|
||||
add_fake_lag(client, 15000);
|
||||
|
||||
+1
-1
@@ -63,7 +63,7 @@ CMD_FUNC(cmd_rules)
|
||||
|
||||
temp = NULL;
|
||||
|
||||
if (hunt_server(client, recv_mtags, ":%s RULES :%s", 1, parc, parv) != HUNTED_ISME)
|
||||
if (hunt_server(client, recv_mtags, "RULES", 1, parc, parv) != HUNTED_ISME)
|
||||
return;
|
||||
|
||||
ptr = find_tld(client);
|
||||
|
||||
+1
-1
@@ -158,7 +158,7 @@ CMD_FUNC(cmd_staff)
|
||||
if (!IsUser(client))
|
||||
return;
|
||||
|
||||
if (hunt_server(client, recv_mtags, ":%s STAFF", 1, parc, parv) != HUNTED_ISME)
|
||||
if (hunt_server(client, recv_mtags, "STAFF", 1, parc, parv) != HUNTED_ISME)
|
||||
return;
|
||||
|
||||
if (!staff.lines)
|
||||
|
||||
+2
-2
@@ -294,12 +294,12 @@ CMD_FUNC(cmd_stats)
|
||||
|
||||
if (parc == 3 && parv[2][0] != '+' && parv[2][0] != '-')
|
||||
{
|
||||
if (hunt_server(client, recv_mtags, ":%s STATS %s :%s", 2, parc, parv) != HUNTED_ISME)
|
||||
if (hunt_server(client, recv_mtags, "STATS", 2, parc, parv) != HUNTED_ISME)
|
||||
return;
|
||||
}
|
||||
else if (parc == 4 && parv[2][0] != '+' && parv[2][0] != '-')
|
||||
{
|
||||
if (hunt_server(client, recv_mtags, ":%s STATS %s %s %s", 2, parc, parv) != HUNTED_ISME)
|
||||
if (hunt_server(client, recv_mtags, "STATS", 2, parc, parv) != HUNTED_ISME)
|
||||
return;
|
||||
}
|
||||
if (parc < 2 || !*parv[1])
|
||||
|
||||
@@ -66,7 +66,7 @@ CMD_FUNC(cmd_svslusers)
|
||||
{
|
||||
if (!IsULine(client) || parc < 4)
|
||||
return;
|
||||
if (hunt_server(client, NULL, ":%s SVSLUSERS %s %s :%s", 1, parc, parv) == HUNTED_ISME)
|
||||
if (hunt_server(client, NULL, "SVSLUSERS", 1, parc, parv) == HUNTED_ISME)
|
||||
{
|
||||
int temp;
|
||||
temp = atoi(parv[2]);
|
||||
|
||||
@@ -69,7 +69,7 @@ CMD_FUNC(cmd_svsnick)
|
||||
if (!IsULine(client) || parc < 4 || (strlen(parv[2]) > NICKLEN))
|
||||
return; /* This looks like an error anyway -Studded */
|
||||
|
||||
if (hunt_server(client, NULL, ":%s SVSNICK %s %s :%s", 1, parc, parv) != HUNTED_ISME)
|
||||
if (hunt_server(client, NULL, "SVSNICK", 1, parc, parv) != HUNTED_ISME)
|
||||
return; /* Forwarded, done */
|
||||
|
||||
strlcpy(nickname, parv[2], sizeof(nickname));
|
||||
|
||||
@@ -62,7 +62,7 @@ CMD_FUNC(cmd_svsnoop)
|
||||
if (!(IsULine(client) && parc > 2))
|
||||
return;
|
||||
|
||||
if (hunt_server(client, NULL, ":%s SVSNOOP %s :%s", 1, parc, parv) == HUNTED_ISME)
|
||||
if (hunt_server(client, NULL, "SVSNOOP", 1, parc, parv) == HUNTED_ISME)
|
||||
{
|
||||
if (parv[2][0] == '+')
|
||||
{
|
||||
|
||||
@@ -79,7 +79,7 @@ void do_svssno(Client *client, int parc, const char *parv[], int show_change)
|
||||
if (!(target = find_person(parv[1], NULL)))
|
||||
return;
|
||||
|
||||
if (hunt_server(client, NULL, show_change ? ":%s SVS2SNO %s %s" : ":%s SVSSNO %s %s", 1, parc, parv) != HUNTED_ISME)
|
||||
if (hunt_server(client, NULL, show_change ? "SVS2SNO" : "SVSSNO", 1, parc, parv) != HUNTED_ISME)
|
||||
return;
|
||||
|
||||
if (MyUser(target))
|
||||
|
||||
+1
-1
@@ -61,6 +61,6 @@ MOD_UNLOAD()
|
||||
*/
|
||||
CMD_FUNC(cmd_time)
|
||||
{
|
||||
if (hunt_server(client, recv_mtags, ":%s TIME :%s", 1, parc, parv) == HUNTED_ISME)
|
||||
if (hunt_server(client, recv_mtags, "TIME", 1, parc, parv) == HUNTED_ISME)
|
||||
sendnumeric(client, RPL_TIME, me.name, long_date(0));
|
||||
}
|
||||
|
||||
+2
-2
@@ -73,7 +73,7 @@ CMD_FUNC(cmd_trace)
|
||||
labeled_response_inhibit = 1;
|
||||
|
||||
if (parc > 2)
|
||||
if (hunt_server(client, NULL, ":%s TRACE %s :%s", 2, parc, parv))
|
||||
if (hunt_server(client, NULL, "TRACE", 2, parc, parv))
|
||||
return;
|
||||
|
||||
if (parc > 1)
|
||||
@@ -98,7 +98,7 @@ CMD_FUNC(cmd_trace)
|
||||
}
|
||||
}
|
||||
|
||||
switch (hunt_server(client, NULL, ":%s TRACE :%s", 1, parc, parv))
|
||||
switch (hunt_server(client, NULL, "TRACE", 1, parc, parv))
|
||||
{
|
||||
case HUNTED_PASS: /* note: gets here only if parv[1] exists */
|
||||
{
|
||||
|
||||
+1
-1
@@ -80,7 +80,7 @@ CMD_FUNC(cmd_whois)
|
||||
|
||||
if (parc > 2)
|
||||
{
|
||||
if (hunt_server(client, recv_mtags, ":%s WHOIS %s :%s", 1, parc, parv) != HUNTED_ISME)
|
||||
if (hunt_server(client, recv_mtags, "WHOIS", 1, parc, parv) != HUNTED_ISME)
|
||||
return;
|
||||
parv[1] = parv[2];
|
||||
}
|
||||
|
||||
@@ -76,7 +76,7 @@ CMD_FUNC(cmd_whowas)
|
||||
if (parc > 2)
|
||||
max = atoi(parv[2]);
|
||||
if (parc > 3)
|
||||
if (hunt_server(client, recv_mtags, ":%s WHOWAS %s %s :%s", 3, parc, parv))
|
||||
if (hunt_server(client, recv_mtags, "WHOWAS", 3, parc, parv))
|
||||
return;
|
||||
|
||||
if (!MyConnect(client) && (max > 20))
|
||||
|
||||
Reference in New Issue
Block a user