if (MyUser(sptr)) {
const char* channel_name;
struct Membership *member;
- if (!force && !IsXtraOp(sptr) && (channel_name = find_no_nickchange_channel(sptr))) {
+ if (!force && !IsXtraOp(sptr) && (channel_name = find_no_nickchange_channel(sptr, nick))) {
return send_reply(cptr, ERR_BANNICKCHANGE, channel_name);
}
/*
/* spoof also the username if username is passed */
if(IsFakeIdent(cptr)) {
- ircd_strncpy(cli_user(cptr)->username, cli_user(cptr)->fakeuser, USERLEN);
- /* ok, the client is now fully hidden, so let them know -- hikari */
+ if(strncmp(cli_user(cptr)->username, cli_user(cptr)->fakeuser, USERLEN) != 0) {
+ ircd_strncpy(cli_username(cptr), cli_user(cptr)->fakeuser, USERLEN);
+ ircd_strncpy(cli_user(cptr)->username, cli_user(cptr)->fakeuser, USERLEN);
+ }
+ /* ok, the client is now fully hidden, so let them know -- hikari */
if (MyConnect(cptr))
send_reply(cptr, RPL_HOSTUSERHIDDEN, cli_user(cptr)->username, cli_user(cptr)->host);
} else {