about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlexander Barton <alex@barton.de>2008-08-17 15:19:45 +0200
committerAlexander Barton <alex@barton.de>2008-09-23 11:53:16 +0200
commit28e98887643bf881c11ba3b8df5e9cbcc7e967ba (patch)
tree7ec1429a693dbd1d08442720b180f9b12e788841
parent3afa0e06583d7f5d353f398147e9a3fd570d2720 (diff)
downloadngircd-28e98887643bf881c11ba3b8df5e9cbcc7e967ba.tar.gz
ngircd-28e98887643bf881c11ba3b8df5e9cbcc7e967ba.zip
Convert SQUERY to PRIVMSG on RFC 1459 compliant links.
-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 */