diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/m_svsmode.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/modules/m_svsmode.c b/modules/m_svsmode.c index d54f664..6c42aa0 100644 --- a/modules/m_svsmode.c +++ b/modules/m_svsmode.c @@ -107,7 +107,13 @@ ms_svsmode(struct Client *client_p, struct Client *source_p, case 'x': if (!EmptyString(extarg) && valid_hostname(extarg)) - user_set_hostmask(target_p, extarg, what); + { + if (what == MODE_DEL && HasUMode(target_p, UMODE_HIDDENHOST)) + user_set_hostmask(target_p, extarg, what); + if (what == MODE_ADD && !HasUMode(target_p, UMODE_HIDDENHOST)) + user_set_hostmask(target_p, extarg, what); + } + break; case 'o': |