* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*
- * $Id: s_user.c 3203 2007-02-04 15:08:04Z jilles $
+ * $Id: s_user.c 3368 2007-04-03 10:11:06Z nenolod $
*/
#include "stdinc.h"
return (CLIENT_EXITED);
}
- /* valid user name check */
-
- if(!valid_username(source_p->username))
- {
- sendto_realops_snomask(SNO_REJ, L_ALL,
- "Invalid username: %s (%s@%s)",
- source_p->name, source_p->username, source_p->host);
- ServerStats->is_ref++;
- ircsprintf(tmpstr2, "Invalid username [%s]", source_p->username);
- exit_client(client_p, source_p, &me, tmpstr2);
- return (CLIENT_EXITED);
- }
-
- /* end of valid user name check */
-
/* kline exemption extends to xline too */
if(!IsExemptKline(source_p) &&
find_xline(source_p->info, 1) != NULL)
source_p->sockhost, source_p->preClient->dnsbl_listed->host);
else
{
- dlink_list varlist;
+ dlink_list varlist = { NULL, NULL, 0 };
substitution_append_var(&varlist, "nick", source_p->name);
substitution_append_var(&varlist, "ip", source_p->sockhost);
}
}
+ /* valid user name check */
+
+ if(!valid_username(source_p->username))
+ {
+ sendto_realops_snomask(SNO_REJ, L_ALL,
+ "Invalid username: %s (%s@%s)",
+ source_p->name, source_p->username, source_p->host);
+ ServerStats->is_ref++;
+ ircsprintf(tmpstr2, "Invalid username [%s]", source_p->username);
+ exit_client(client_p, source_p, &me, tmpstr2);
+ return (CLIENT_EXITED);
+ }
+
+ /* end of valid user name check */
+
/* Store original hostname -- jilles */
strlcpy(source_p->orighost, source_p->host, HOSTLEN + 1);
*m = '\0';
sendto_one(source_p, form_str(RPL_UMODEIS), me.name, source_p->name, buf);
+
if (source_p->snomask != 0)
- sendto_one(source_p, form_str(RPL_SNOMASK), me.name, source_p->name,
+ sendto_one_numeric(source_p, RPL_SNOMASK, form_str(RPL_SNOMASK),
construct_snobuf(source_p->snomask));
+
return 0;
}
*/
send_umode_out(client_p, source_p, setflags);
if (showsnomask && MyConnect(source_p))
- sendto_one(source_p, form_str(RPL_SNOMASK), me.name, source_p->name,
+ sendto_one_numeric(source_p, RPL_SNOMASK, form_str(RPL_SNOMASK),
construct_snobuf(source_p->snomask));
return (0);
void
user_welcome(struct Client *source_p)
{
- sendto_one(source_p, form_str(RPL_WELCOME), me.name, source_p->name,
- ServerInfo.network_name, source_p->name);
- sendto_one(source_p, form_str(RPL_YOURHOST), me.name,
- source_p->name,
+ sendto_one_numeric(source_p, RPL_WELCOME, form_str(RPL_WELCOME), ServerInfo.network_name, source_p->name);
+ sendto_one_numeric(source_p, RPL_YOURHOST, form_str(RPL_YOURHOST),
get_listener_name(source_p->localClient->listener), ircd_version);
-
- sendto_one(source_p, form_str(RPL_CREATED), me.name, source_p->name, creation);
- sendto_one(source_p, form_str(RPL_MYINFO), me.name, source_p->name, me.name, ircd_version, umodebuf);
+ sendto_one_numeric(source_p, RPL_CREATED, form_str(RPL_CREATED), creation);
+ sendto_one_numeric(source_p, RPL_MYINFO, form_str(RPL_MYINFO), me.name, ircd_version, umodebuf);
show_isupport(source_p);
sendto_realops_snomask(SNO_GENERAL, L_ALL,
"%s (%s@%s) is now an operator", source_p->name,
source_p->username, source_p->host);
+ if(!(old & UMODE_INVISIBLE) && IsInvisible(source_p))
+ ++Count.invisi;
+ if((old & UMODE_INVISIBLE) && !IsInvisible(source_p))
+ --Count.invisi;
send_umode_out(source_p, source_p, old);
- sendto_one(source_p, form_str(RPL_SNOMASK), me.name, source_p->name,
+ sendto_one_numeric(source_p, RPL_SNOMASK, form_str(RPL_SNOMASK),
construct_snobuf(source_p->snomask));
sendto_one(source_p, form_str(RPL_YOUREOPER), me.name, source_p->name);
sendto_one_notice(source_p, ":*** Oper privs are %s", get_oper_privs(oper_p->flags));
target_p->host, nick);
}
- strlcpy(target_p->username, user, USERLEN);
- strlcpy(target_p->host, host, HOSTLEN);
+ strlcpy(target_p->username, user, sizeof target_p->username);
+ strlcpy(target_p->host, host, sizeof target_p->host);
if (changed)
add_history(target_p, 1);