]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/channels.cpp
Tidy up key handling
[user/henk/code/inspircd.git] / src / channels.cpp
index 8dd8b490e02673ae875f7a9ef7e11bbc7554efff..4c596575997e530b49ef63d013fea4f119149916 100644 (file)
@@ -224,7 +224,7 @@ chanrec* chanrec::JoinUser(InspIRCd* Instance, userrec *user, const char* cn, bo
                Ptr->modes[CM_TOPICLOCK] = Ptr->modes[CM_NOEXTERNAL] = 1;
                Ptr->created = Instance->Time();
                *Ptr->topic = 0;
-               strlcpy(Ptr->setby, user->nick,NICKMAX-1);
+               *Ptr->setby = 0;
                Ptr->topicset = 0;
                Instance->Log(DEBUG,"chanrec::JoinUser(): created: %s",cname);
                /*
@@ -260,21 +260,11 @@ chanrec* chanrec::JoinUser(InspIRCd* Instance, userrec *user, const char* cn, bo
                                        FOREACH_RESULT_I(Instance,I_OnCheckKey,OnCheckKey(user, Ptr, key ? key : ""));
                                        if (!MOD_RESULT)
                                        {
-                                               if (!key)
+                                               if ((!key) || strcmp(key,Ptr->key))
                                                {
-                                                       Instance->Log(DEBUG,"chanrec::JoinUser(): no key given in JOIN");
-                                                       user->WriteServ("475 %s %s :Cannot join channel (Requires key)",user->nick, Ptr->name);
+                                                       user->WriteServ("475 %s %s :Cannot join channel (Incorrect channel key)",user->nick, Ptr->name);
                                                        return NULL;
                                                }
-                                               else
-                                               {
-                                                       if (strcmp(key,Ptr->key))
-                                                       {
-                                                               Instance->Log(DEBUG,"chanrec::JoinUser(): bad key given in JOIN");
-                                                               user->WriteServ("475 %s %s :Cannot join channel (Incorrect key)",user->nick, Ptr->name);
-                                                               return NULL;
-                                                       }
-                                               }
                                        }
                                }
                                if (Ptr->modes[CM_INVITEONLY])