diff options
Diffstat (limited to 'src/ngircd/irc.c')
| -rw-r--r-- | src/ngircd/irc.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/ngircd/irc.c b/src/ngircd/irc.c index ad9d32c9..0741aefa 100644 --- a/src/ngircd/irc.c +++ b/src/ngircd/irc.c @@ -419,7 +419,14 @@ Send_Message(CLIENT * Client, REQUEST * Req, int ForceType, bool SendErrors) if (cl) { /* Target is a user, enforce type */ +#ifndef STRICT_RFC + if (Client_Type(cl) != ForceType && + !(ForceType == CLIENT_USER && + (Client_Type(cl) == CLIENT_USER || + Client_Type(cl) == CLIENT_SERVICE))) { +#else if (Client_Type(cl) != ForceType) { +#endif if (!SendErrors) return CONNECTED; return IRC_WriteStrClient(from, ERR_NOSUCHNICK_MSG, |