From: Florian Westphal Date: Thu, 1 May 2008 16:00:33 +0000 (+0200) Subject: Always enable modeless channels. X-Git-Tag: rel-13-rc1~134 X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git;a=commitdiff_plain;h=f7c2e8223f95fd984e7b96308905eef505c01680 Always enable modeless channels. Modeless channels (+channels) are described in RFC 2811; so my modifications to 530112b114ffa7d5352c0733790ddf90253f41f9 ('Add support for modeless channels') to disable +channels for --strict-rfc configurations were wrong. This reverts those changes. --- diff --git a/src/ngircd/channel.c b/src/ngircd/channel.c index 7859238b..1b0e4424 100644 --- a/src/ngircd/channel.c +++ b/src/ngircd/channel.c @@ -480,14 +480,8 @@ Channel_IsValidName( const char *Name ) { assert( Name != NULL ); - switch (Name[0]) { - case '#': break; -#ifndef STRICT_RFC - case '+': /* modeless channel */ - break; -#endif - default: return false; - } + if (strchr("+#", Name[0]) == NULL) + return false; if (strlen(Name) >= CHANNEL_NAME_LEN) return false; diff --git a/src/ngircd/irc-channel.c b/src/ngircd/irc-channel.c index 3f76452e..934c9082 100644 --- a/src/ngircd/irc-channel.c +++ b/src/ngircd/irc-channel.c @@ -242,10 +242,9 @@ IRC_JOIN( CLIENT *Client, REQUEST *Req ) if (!chan) { /* * New Channel: first user will be channel operator - * unless this is a modeless channel... */ -#ifndef STRICT_RFC + * unless this is a modeless channel. + */ if (*channame != '+') -#endif flags = "o"; } else if (!join_allowed(Client, target, chan, channame, key)) diff --git a/src/ngircd/irc-mode.c b/src/ngircd/irc-mode.c index 3bf809bc..f4e3e0f9 100644 --- a/src/ngircd/irc-mode.c +++ b/src/ngircd/irc-mode.c @@ -286,12 +286,11 @@ Channel_Mode( CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel ) long l; size_t len; -#ifndef STRICT_RFC /* Are modes allowed on channel? */ if (Channel_Name(Channel)[0] == '+') return IRC_WriteStrClient(Client, ERR_NOCHANMODES_MSG, Client_ID(Client), Channel_Name(Channel)); -#endif + /* Mode request: let's answer it :-) */ if (Req->argc <= 1) return Channel_Mode_Answer_Request(Origin, Channel);