From 0a9608a26f4c5fec7d09f13a814bf4e384b17759 Mon Sep 17 00:00:00 2001 From: Alexander Barton Date: Tue, 3 Mar 2009 16:33:40 +0100 Subject: [PATCH] Channel mode changes: break on error Don't echo multiple syntax error messages (461) on invalid commands, but break after the first one. In addition, this solves corrupted 'Unknown mode "+' messages. --- src/ngircd/irc-mode.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ngircd/irc-mode.c b/src/ngircd/irc-mode.c index 2c142288..9ada4f13 100644 --- a/src/ngircd/irc-mode.c +++ b/src/ngircd/irc-mode.c @@ -440,6 +440,7 @@ Channel_Mode(CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel) ok = IRC_WriteStrClient(Origin, ERR_NEEDMOREPARAMS_MSG, Client_ID(Origin), Req->command); + goto chan_exit; } break; case 'l': /* Member limit */ @@ -475,6 +476,7 @@ Channel_Mode(CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel) ok = IRC_WriteStrClient(Origin, ERR_NEEDMOREPARAMS_MSG, Client_ID(Origin), Req->command); + goto chan_exit; } break; case 'P': /* Persistent channel */ @@ -519,6 +521,7 @@ Channel_Mode(CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel) ok = IRC_WriteStrClient(Origin, ERR_NEEDMOREPARAMS_MSG, Client_ID(Origin), Req->command); + goto chan_exit; } break; /* --- Channel lists --- */ -- 2.39.2