]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/channels.cpp
Add checking on AddFd that was missing (it assumed, like everything else)
[user/henk/code/inspircd.git] / src / channels.cpp
index 51d0c173c6f21ee7559e126a211ee734f09f01cb..3671fdb6dc971d8476803065d09617863f124183 100644 (file)
@@ -349,16 +349,16 @@ chanrec* add_channel(userrec *user, const char* cn, const char* key, bool overri
                                        MOD_RESULT = 0;
                                        FOREACH_RESULT(I_OnCheckBan,OnCheckBan(user, Ptr));
                                        char mask[MAXBUF];
-                                       sprintf(mask,"%s@%s",user->ident, user->GetIPString());
+                                       sprintf(mask,"%s!%s@%s",user->nick, user->ident, user->GetIPString());
                                        if (!MOD_RESULT)
                                        {
                                                for (BanList::iterator i = Ptr->bans.begin(); i != Ptr->bans.end(); i++)
                                                {
                                                        /* This allows CIDR ban matching
                                                         * 
-                                                        *          Full masked host                        Full unmasked host                        IP with CIDR                    IP without CIDR
+                                                        *          Full masked host                        Full unmasked host                     IP with/without CIDR
                                                         */
-                                                       if ((match(user->GetFullHost(),i->data)) || (match(user->GetFullRealHost(),i->data)) || (match(mask, i->data, true)) || (match(mask, i->data, false)))
+                                                       if ((match(user->GetFullHost(),i->data)) || (match(user->GetFullRealHost(),i->data)) || (match(mask, i->data, true)))
                                                        {
                                                                WriteServ(user->fd,"474 %s %s :Cannot join channel (You're banned)",user->nick, Ptr->name);
                                                                return NULL;