about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/ngircd/irc.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/ngircd/irc.c b/src/ngircd/irc.c
index b88d5d7d..0bfb3eed 100644
--- a/src/ngircd/irc.c
+++ b/src/ngircd/irc.c
@@ -438,6 +438,17 @@ Send_Message(CLIENT * Client, REQUEST * Req, int ForceType, bool SendErrors)
 							  Client_ID(from),
 							  currentTarget);
 			}
+
+#ifndef STRICT_RFC
+			if (ForceType == CLIENT_SERVICE &&
+			    (Conn_Options(Client_Conn(Client_NextHop(cl)))
+			     & CONN_RFC1459)) {
+				/* SQUERY command but RFC 1459 link: convert
+				 * request to PRIVMSG command */
+				Req->command = "PRIVMSG";
+			}
+#endif
+
 			if (SendErrors && (Client_Type(Client) != CLIENT_SERVER)
 			    && strchr(Client_Modes(cl), 'a')) {
 				/* Target is away */