]> jfr.im git - irc/quakenet/snircd-patchqueue.git/blob - showumodehtoclients.patch
showumodehtoclients: show usermode +h to clients
[irc/quakenet/snircd-patchqueue.git] / showumodehtoclients.patch
1 show usermode +h to clients (/mode +h spoof .. and /mode -h is allowed by clients)
2
3 diff -r b99b280644c5 include/client.h
4 --- a/include/client.h
5 +++ b/include/client.h
6 @@ -90,7 +90,7 @@
7 #define FlagClr(set,flag) ((set)->bits[FLAGSET_INDEX(flag)] &= ~FLAGSET_MASK(flag))
8
9 /** String containing valid user modes, in no particular order. */
10 -#define infousermodes "dioOswkgxRXInPq"
11 +#define infousermodes "dioOswkghxRXInPq"
12
13 /** Character to indicate no oper name available */
14 #define NOOPERNAMECHARACTER '-'
15 diff -r b99b280644c5 ircd/s_user.c
16 --- a/ircd/s_user.c
17 +++ b/ircd/s_user.c
18 @@ -1226,8 +1226,7 @@
19 for (i = 0; i < USERMODELIST_SIZE; i++)
20 {
21 if (HasFlag(sptr, userModeList[i].flag) &&
22 - ((userModeList[i].flag != FLAG_ACCOUNT) &&
23 - (userModeList[i].flag != FLAG_SETHOST)))
24 + userModeList[i].flag != FLAG_ACCOUNT)
25 *m++ = userModeList[i].c;
26 }
27 *m = '\0';
28 @@ -1689,12 +1688,10 @@
29 }
30 /* Special case for SETHOST.. */
31 if (flag == FLAG_SETHOST) {
32 - /* Don't send to users */
33 - if (cptr && MyUser(cptr))
34 - continue;
35 -
36 - /* If we're setting +h, add the parameter later */
37 - if (!FlagHas(old, flag))
38 + /* If we're setting +h, add the parameter later,
39 + * but not when showing to the user
40 + */
41 + if (!FlagHas(old, flag) && (!cptr || !MyUser(cptr)))
42 needhost++;
43 }
44 if (FlagHas(old, flag))