Module: ngircd.git Branch: master Commit: e7fb8429496e9ae8b3767b80d2256ecb354a601a URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=e7fb8...
Author: Alexander Barton alex@barton.de Date: Wed Sep 26 22:52:06 2012 +0200
Allow user mode +x only when "CloakHostModeX" is set
Allow users to "cloak" their hostname only when the configuration variable "CloakHostModeX" (introduced in 19.2) is set. Otherwise, only IRC opertators, other servers, and services are allowed to set mode +x.
This prevents regular users from changing their hostmask to the name of the IRC server itself, which confused quite a few people ;-)
---
INSTALL | 8 ++++++++ src/ngircd/irc-mode.c | 8 +++++++- 2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/INSTALL b/INSTALL index 640df4e..b445958 100644 --- a/INSTALL +++ b/INSTALL @@ -12,6 +12,14 @@ I. Upgrade Information ~~~~~~~~~~~~~~~~~~~~~~
+Differences to version 19.x + +- Starting with ngIRCd 20, users can "cloak" their hostname only when the + configuration variable "CloakHostModeX" (introduced in 19.2) is set. + Otherwise, only IRC opertators, other servers, and services are allowed to + set mode +x. This prevents regular users from changing their hostmask to + the name of the IRC server itself, which confused quite a few people ;-) + Differences to version 17
- Support for ZeroConf/Bonjour/Rendezvous service registration has been diff --git a/src/ngircd/irc-mode.c b/src/ngircd/irc-mode.c index 7380c6e..90f638d 100644 --- a/src/ngircd/irc-mode.c +++ b/src/ngircd/irc-mode.c @@ -278,9 +278,15 @@ Client_Mode( CLIENT *Client, REQUEST *Req, CLIENT *Origin, CLIENT *Target ) ok = IRC_WriteStrClient(Origin, ERR_RESTRICTED_MSG, Client_ID(Origin)); - else + else if (!set || Conf_CloakHostModeX[0] + || Client_Type(Client) == CLIENT_SERVER + || Client_OperByMe(Client)) { x[0] = 'x'; send_RPL_HOSTHIDDEN_MSG = true; + } else + ok = IRC_WriteStrClient(Origin, + ERR_NOPRIVILEGES_MSG, + Client_ID(Origin)); break; default: if (Client_Type(Client) != CLIENT_SERVER) {