#include "msg.h"
#include "parse.h"
#include "modules.h"
-#include "sprintf_irc.h"
#include "whowas.h"
#include "monitor.h"
#include "s_stats.h"
#include "snomask.h"
-#include "irc_string.h"
+#include "match.h"
#include "s_user.h"
static int me_svslogin(struct Client *, struct Client *, int, const char **);
int valid = 0;
if(!(source_p->flags & FLAGS_SERVICE))
+ {
+ sendto_realops_snomask(SNO_GENERAL, L_ALL,
+ "Non-service server %s attempting to execute services-only command SVSLOGIN", source_p->name);
return 0;
+ }
if((target_p = find_client(parv[1])) == NULL)
return 0;
exist_p->flags |= FLAGS_KILLED;
kill_client_serv_butone(NULL, exist_p, "%s (Nickname regained by services)",
me.name);
+ sendto_realops_snomask(SNO_SKILL, L_ALL,
+ "Nick collision due to SVSLOGIN on %s",
+ nick);
- snprintf(buf, sizeof(buf), "Killed (%s (Nickname regained by services))",
+ rb_snprintf(buf, sizeof(buf), "Killed (%s (Nickname regained by services))",
me.name);
exit_client(NULL, exist_p, &me, buf);
}else if((exist_p = find_client(nick)) && IsUnknown(exist_p) && exist_p != target_p) {
sendto_server(client_p, NULL, CAP_TS6, NOCAPS, ":%s SIGNON %s %s %s %ld %s",
use_id(target_p), nick, user, host,
(long) target_p->tsinfo, *login ? login : "0");
- sendto_server(client_p, NULL, NOCAPS, CAP_TS6, ":%s SIGNON %s %s %s %ld %s",
- target_p->name, nick, user, host,
- (long) target_p->tsinfo, *login ? login : "0");
strcpy(target_p->user->suser, login);