about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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),