]> arthur.barton.de Git - ngircd-alex.git/commitdiff
Channel mode changes: break on error
authorAlexander Barton <alex@barton.de>
Tue, 3 Mar 2009 15:33:40 +0000 (16:33 +0100)
committerAlexander Barton <alex@barton.de>
Tue, 3 Mar 2009 15:33:40 +0000 (16:33 +0100)
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

index 2c142288fd446d04dd48322c9da121a960a138a5..9ada4f13c7f1e437733b4e2ea42bd89273bc4ba4 100644 (file)
@@ -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 --- */