diff options
| author | Alexander Barton <alex@barton.de> | 2009-03-03 16:33:40 +0100 |
|---|---|---|
| committer | Alexander Barton <alex@barton.de> | 2009-03-03 16:33:40 +0100 |
| commit | 0a9608a26f4c5fec7d09f13a814bf4e384b17759 (patch) | |
| tree | 156705f58634451bb1c6859138b06f29e4d886c5 /src | |
| parent | dee89c2355f973db0ba7c7ca81c83940caefc3d4 (diff) | |
| download | ngircd-0a9608a26f4c5fec7d09f13a814bf4e384b17759.tar.gz ngircd-0a9608a26f4c5fec7d09f13a814bf4e384b17759.zip | |
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.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ngircd/irc-mode.c | 3 |
1 files changed, 3 insertions, 0 deletions
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 --- */ |