Commit Diff


commit - d692286d7a5a31f5ccef4f8d6b3ddee2188950ff
commit + 3dc3a035386789852ba5a9fbc22b9b3c2793f0b0
blob - 2cc60f46b72f2f9405aee5ab751a1bd159c09652
blob + 1222bc5cd67a357e2452c122856bbfbf02c33221
--- src/ngircd/irc-mode.c
+++ 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),