1 Check if new spoof user@host is not already set, but only when user already has +h or is +rx (and not just +r)
3 diff -r be4b66b8edbf ircd/m_sethost.c
7 send_reply(sptr, ERR_BADHOSTMASK, hostmask);
10 - if (IsSetHost(sptr) || IsAccount(sptr)) {
11 + if (IsSetHost(sptr) || HasHiddenHost(sptr)) {
12 ircd_snprintf(0, curhostmask, USERLEN + HOSTLEN + 2, "%s@%s", sptr->cli_user->username, sptr->cli_user->host);
13 if (0 == strcmp(hostmask, curhostmask)) {
14 send_reply(sptr, RPL_HOSTHIDDEN, curhostmask);
16 send_reply(sptr, ERR_BADHOSTMASK, parv[1]);
19 - if (IsSetHost(sptr) || IsAccount(sptr)) {
20 + if (IsSetHost(sptr) || HasHiddenHost(sptr)) {
21 if (0 == strcmp(parv[1], sptr->cli_user->host)) {
22 send_reply(sptr, RPL_HOSTHIDDEN, parv[1]);
25 setflags = cli_flags(target);
26 FlagClr(&setflags, FLAG_SETHOST);
28 - if (IsSetHost(target) || IsAccount(target)) {
29 + if (IsSetHost(target) || HasHiddenHost(target)) {
30 if ((0 == strcmp(parv[2], target->cli_user->username)) && (0 == strcmp(parv[3], target->cli_user->host)))