]> jfr.im git - irc/quakenet/snircd-patchqueue.git/blob - sethostnewhostmask.patch
snircdumodescheckisanoper: check IsAnOper() (local or global) instead of IsOper(...
[irc/quakenet/snircd-patchqueue.git] / sethostnewhostmask.patch
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)
2
3 diff -r be4b66b8edbf ircd/m_sethost.c
4 --- a/ircd/m_sethost.c
5 +++ b/ircd/m_sethost.c
6 @@ -136,7 +136,7 @@
7 send_reply(sptr, ERR_BADHOSTMASK, hostmask);
8 return 0;
9 }
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);
15 @@ -150,7 +150,7 @@
16 send_reply(sptr, ERR_BADHOSTMASK, parv[1]);
17 return 0;
18 }
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]);
23 return 0;
24 @@ -206,7 +206,7 @@
25 setflags = cli_flags(target);
26 FlagClr(&setflags, FLAG_SETHOST);
27
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)))
31 return 0;
32 }