- struct Client *target_p;
- time_t newts = 0;
-
- if(parc != 9)
- {
- sendto_realops_snomask(SNO_GENERAL, L_ALL,
- "Dropping server %s due to (invalid) command 'NICK' "
- "with %d arguments (expecting 9)", client_p->name, parc);
- ilog(L_SERVER, "Excess parameters (%d) for command 'NICK' from %s.",
- parc, client_p->name);
- exit_client(client_p, client_p, client_p, "Excess parameters to NICK command");
- return 0;
- }
-
- /* if nicks empty, erroneous, or too long, kill */
- if(!clean_nick(parv[1], 0))
- {
- bad_nickname(client_p, parv[1]);
- return 0;
- }
-
- /* invalid username or host? */
- if(!clean_username(parv[5]) || !clean_host(parv[6]))
- {
- ServerStats.is_kill++;
- sendto_realops_snomask(SNO_DEBUG, L_ALL,
- "Bad user@host: %s@%s From: %s(via %s)",
- parv[5], parv[6], parv[7], client_p->name);
- sendto_one(client_p, ":%s KILL %s :%s (Bad user@host)", me.name, parv[1], me.name);
- return 0;
- }
-
- /* check the length of the clients gecos */
- if(strlen(parv[8]) > REALLEN)
- {
- char *s = LOCAL_COPY(parv[8]);
- /* why exactly do we care? --fl */
- sendto_realops_snomask(SNO_GENERAL, L_ALL,
- "Long realname from server %s for %s", parv[7], parv[1]);
-
- s[REALLEN] = '\0';
- parv[8] = s;
- }