]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/ngircd/irc-mode.c
Allow user mode +x only when "CloakHostModeX" is set
[ngircd-alex.git] / src / ngircd / irc-mode.c
index 7380c6eb5c70308b030097aadf58a9ab3bc933e4..90f638d811219282b34af51c8cf8369e7548e4f7 100644 (file)
@@ -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) {