summary refs log tree commit diff
path: root/src/ngircd/irc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ngircd/irc.c')
-rw-r--r--src/ngircd/irc.c7
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,