about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlexander Barton <alex@barton.de>2011-08-01 21:10:16 +0200
committerAlexander Barton <alex@barton.de>2011-08-01 21:10:16 +0200
commit3dc3a035386789852ba5a9fbc22b9b3c2793f0b0 (patch)
tree4a01c210c5fa0abc9febbb93abf51941f994b2c2
parentd692286d7a5a31f5ccef4f8d6b3ddee2188950ff (diff)
downloadngircd-3dc3a035386789852ba5a9fbc22b9b3c2793f0b0.tar.gz
ngircd-3dc3a035386789852ba5a9fbc22b9b3c2793f0b0.zip
Infom clients when other servers change their user modes
-rw-r--r--src/ngircd/irc-mode.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/ngircd/irc-mode.c b/src/ngircd/irc-mode.c
index 2cc60f46..1222bc5c 100644
--- a/src/ngircd/irc-mode.c
+++ b/src/ngircd/irc-mode.c
@@ -271,6 +271,14 @@ client_exit:
 
 		if (Client_Type(Client) == CLIENT_SERVER) {
 			/* Forward modes to other servers */
+			if (Client_Conn(Target) != NONE) {
+				/* Remote server (service?) changed modes
+				 * for one of our clients. Inform it! */
+				IRC_WriteStrClientPrefix(Target, Origin,
+							 "MODE %s :%s",
+							 Client_ID(Target),
+							 the_modes);
+			}
 			IRC_WriteStrServersPrefix(Client, Origin,
 						  "MODE %s :%s",
 						  Client_ID(Target),