- {
- /* XXX the uid nick gets garbage TS; shouldn't matter though */
- change_remote_nick(target_p, target_p, CurrentTime, target_p->id, 0);
- }
+ change_remote_nick(target_p, target_p, SAVE_NICKTS, target_p->id, 0);
+}
+
+static void bad_nickname(struct Client *client_p, const char *nick)
+{
+ char squitreason[100];
+
+ sendto_wallops_flags(UMODE_WALLOP, &me,
+ "Squitting %s because of bad nickname %s (NICKLEN mismatch?)",
+ client_p->name, nick);
+ sendto_server(NULL, NULL, CAP_TS6, NOCAPS,
+ ":%s WALLOPS :Squitting %s because of bad nickname %s (NICKLEN mismatch?)",
+ me.id, client_p->name, nick);
+ sendto_server(NULL, NULL, NOCAPS, CAP_TS6,
+ ":%s WALLOPS :Squitting %s because of bad nickname %s (NICKLEN mismatch?)",
+ me.name, client_p->name, nick);
+
+ rb_snprintf(squitreason, sizeof squitreason,
+ "Bad nickname introduced [%s]", nick);
+ exit_client(client_p, client_p, &me, squitreason);