X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fchannels.cpp;h=5169fbf6372161a77b83541393fe0a05d14ac519;hb=4c83624ed825ca123401a45c8d2844ba6453a85b;hp=83f18abee01427cab15feacff82f85ce78190c8d;hpb=deb85740798d3438563628736c0e83edb6966b6e;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/channels.cpp b/src/channels.cpp index 83f18abee..5169fbf63 100644 --- a/src/channels.cpp +++ b/src/channels.cpp @@ -13,9 +13,6 @@ #include "inspircd.h" #include -#include "configreader.h" -#include "users.h" -#include "modules.h" #include "wildcard.h" #include "mode.h" @@ -180,9 +177,6 @@ void chanrec::SetDefaultModes() list.GetToken(modeseq); - userrec* dummyuser = new userrec(ServerInstance); - dummyuser->SetFd(FD_MAGIC_NUMBER); - for (std::string::iterator n = modeseq.begin(); n != modeseq.end(); ++n) { ModeHandler* mode = ServerInstance->Modes->FindMode(*n, MODETYPE_CHANNEL); @@ -193,11 +187,9 @@ void chanrec::SetDefaultModes() else parameter.clear(); - mode->OnModeChange(dummyuser, dummyuser, this, parameter, true); + mode->OnModeChange(ServerInstance->FakeClient, ServerInstance->FakeClient, this, parameter, true); } } - - delete dummyuser; } /* @@ -370,11 +362,9 @@ chanrec* chanrec::JoinUser(InspIRCd* Instance, userrec *user, const char* cn, bo chanrec* chanrec::ForceChan(InspIRCd* Instance, chanrec* Ptr, userrec* user, const std::string &privs) { - userrec* dummyuser = new userrec(Instance); std::string nick = user->nick; bool silent = false; - dummyuser->SetFd(FD_MAGIC_NUMBER); Ptr->AddUser(user); /* Just in case they have no permissions */ @@ -388,7 +378,7 @@ chanrec* chanrec::ForceChan(InspIRCd* Instance, chanrec* Ptr, userrec* user, con { Ptr->SetPrefix(user, status, mh->GetPrefixRank(), true); /* Make sure that the mode handler knows this mode was now set */ - mh->OnModeChange(dummyuser, dummyuser, Ptr, nick, true); + mh->OnModeChange(Instance->FakeClient, Instance->FakeClient, Ptr, nick, true); switch (mh->GetPrefix()) { @@ -413,8 +403,6 @@ chanrec* chanrec::ForceChan(InspIRCd* Instance, chanrec* Ptr, userrec* user, con } } - delete dummyuser; - FOREACH_MOD_I(Instance,I_OnUserJoin,OnUserJoin(user, Ptr, silent)); if (!silent) @@ -846,7 +834,7 @@ void chanrec::UserList(userrec *user, CUList *ulist) if (MOD_RESULT == 1) return; - dlen = curlen = snprintf(list,MAXBUF,"353 %s = %s :", user->nick, this->name); + dlen = curlen = snprintf(list,MAXBUF,"353 %s %c %s :", user->nick, this->IsModeSet('s') ? '@' : this->IsModeSet('p') ? '*' : '=', this->name); int numusers = 0; char* ptr = list + dlen; @@ -888,7 +876,7 @@ void chanrec::UserList(userrec *user, CUList *ulist) user->WriteServ(std::string(list)); /* reset our lengths */ - dlen = curlen = snprintf(list,MAXBUF,"353 %s = %s :", user->nick, this->name); + dlen = curlen = snprintf(list,MAXBUF,"353 %s %c %s :", user->nick, this->IsModeSet('s') ? '@' : this->IsModeSet('p') ? '*' : '=', this->name); ptr = list + dlen; ptrlen = 0;