about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlexander Barton <alex@barton.de>2011-08-01 22:30:00 +0200
committerAlexander Barton <alex@barton.de>2011-08-01 22:30:00 +0200
commit2fd42667c2a064bab6e28523a7e68383604a1e15 (patch)
treeee3e4bcf6c424a9819538da187c3292c1043ded5
parent2dfa24d2fa42bdfece472da57c823a3968230fae (diff)
downloadngircd-2fd42667c2a064bab6e28523a7e68383604a1e15.tar.gz
ngircd-2fd42667c2a064bab6e28523a7e68383604a1e15.zip
Handle unknown channel modes on server links
-rw-r--r--src/ngircd/irc-mode.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/ngircd/irc-mode.c b/src/ngircd/irc-mode.c
index b469a169..326c1046 100644
--- a/src/ngircd/irc-mode.c
+++ b/src/ngircd/irc-mode.c
@@ -650,18 +650,25 @@ Channel_Mode(CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel)
 			}
 			break;
 		default:
-			Log(LOG_DEBUG,
-			    "Unknown mode \"%c%c\" from \"%s\" on %s!?",
-			    set ? '+' : '-', *mode_ptr, Client_ID(Origin),
-			    Channel_Name(Channel));
-			if (Client_Type(Client) != CLIENT_SERVER)
+			if (Client_Type(Client) != CLIENT_SERVER) {
+				Log(LOG_DEBUG,
+				    "Unknown mode \"%c%c\" from \"%s\" on %s!?",
+				    set ? '+' : '-', *mode_ptr,
+				    Client_ID(Origin), Channel_Name(Channel));
 				connected = IRC_WriteStrClient(Origin,
 					ERR_UMODEUNKNOWNFLAG2_MSG,
 					Client_ID(Origin),
 					set ? '+' : '-', *mode_ptr);
-			x[0] = '\0';
-			goto chan_exit;
-		}	/* switch() */
+				x[0] = '\0';
+				goto chan_exit;
+			} else {
+				Log(LOG_DEBUG,
+				    "Handling unknown mode \"%c%c\" from \"%s\" on %s ...",
+				    set ? '+' : '-', *mode_ptr,
+				    Client_ID(Origin), Channel_Name(Channel));
+				x[0] = *mode_ptr;
+			}
+		}
 
 		if (!connected)
 			break;