]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/ngircd/irc-channel.c
Mac OS X: fix test for packagemaker(1) tool in Makefile
[ngircd-alex.git] / src / ngircd / irc-channel.c
index 27414d38b5771666c402dba0a259018e6f6e06df..af0f06681568289512438c91d868507fda2840d5 100644 (file)
@@ -89,10 +89,9 @@ join_allowed(CLIENT *Client, CLIENT *target, CHANNEL *chan,
        }
 
        /* Is the channel protected by a key? */
-       if (strchr(channel_modes, 'k') &&
-               strcmp(Channel_Key(chan), key ? key : ""))
-       {
-               IRC_WriteStrClient(Client, ERR_BADCHANNELKEY_MSG, Client_ID(Client), channame);
+       if (!Channel_CheckKey(chan, target, key ? key : "")) {
+               IRC_WriteStrClient(Client, ERR_BADCHANNELKEY_MSG,
+                                  Client_ID(Client), channame);
                return false;
        }
        /* Are there already too many members? */
@@ -304,7 +303,7 @@ IRC_JOIN( CLIENT *Client, REQUEST *Req )
                if (!chan) { /* channel is new; it has been created above */
                        chan = Channel_Search(channame);
                        assert(chan != NULL);
-                       if (*channame == '+') { /* modeless channel... */
+                       if (Channel_IsModeless(chan)) {
                                Channel_ModeAdd(chan, 't'); /* /TOPIC not allowed */
                                Channel_ModeAdd(chan, 'n'); /* no external msgs */
                        }