X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fchannels.cpp;h=dc42ea651e71035f8fd63cd56bd38a8f734b7df1;hb=84a19a9ab6129deb71cdc24b216b74dd8eb80978;hp=c63ddbb289bb3f69d9a2cc1a730c469e6a5a8147;hpb=77123f4dec9f29105f6c0ceea0262cfe8e9eaa1a;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/channels.cpp b/src/channels.cpp index c63ddbb28..dc42ea651 100644 --- a/src/channels.cpp +++ b/src/channels.cpp @@ -16,18 +16,13 @@ using namespace std; -#include "configreader.h" -#include "inspircd.h" -#include -#include -#include -#include -#include #include #include #include #include #include +#include "configreader.h" +#include "inspircd.h" #include "hash_map.h" #include "users.h" #include "ctables.h" @@ -48,8 +43,6 @@ extern ServerConfig* Config; extern int MODCOUNT; extern std::vector modules; extern std::vector factory; -extern int WHOWAS_STALE; -extern int WHOWAS_MAX; extern time_t TIME; extern chan_hash chanlist; @@ -76,14 +69,18 @@ void chanrec::SetCustomModeParam(char mode,char* parameter,bool mode_on) { log(DEBUG,"SetCustomModeParam called"); - std::map::iterator n = custom_mode_params.find(mode); + CustomModeList::iterator n = custom_mode_params.find(mode); if (mode_on) { - log(DEBUG,"Custom mode parameter %c %s added",mode,parameter); if (n == custom_mode_params.end()) { custom_mode_params[mode] = strdup(parameter); + log(DEBUG,"Custom mode parameter %c %s added",mode,parameter); + } + else + { + log(DEBUG, "Tried to set custom mode parameter for %c '%s' when it was already '%s'", mode, parameter, n->second); } } else @@ -113,7 +110,7 @@ std::string chanrec::GetModeParameter(char mode) } else { - std::map::iterator n = custom_mode_params.find(mode); + CustomModeList::iterator n = custom_mode_params.find(mode); if (n != custom_mode_params.end()) { return n->second; @@ -134,7 +131,8 @@ void chanrec::AddUser(userrec* user) unsigned long chanrec::DelUser(userrec* user) { - CUList::iterator a = internal_userlist.find(user); + CUListIter a = internal_userlist.find(user); + if (a != internal_userlist.end()) { internal_userlist.erase(a); @@ -142,8 +140,8 @@ unsigned long chanrec::DelUser(userrec* user) DelOppedUser(user); DelHalfoppedUser(user); DelVoicedUser(user); - return internal_userlist.size(); } + return internal_userlist.size(); } @@ -159,7 +157,7 @@ void chanrec::AddOppedUser(userrec* user) void chanrec::DelOppedUser(userrec* user) { - CUList::iterator a = internal_op_userlist.find(user); + CUListIter a = internal_op_userlist.find(user); if (a != internal_op_userlist.end()) { internal_op_userlist.erase(a); @@ -174,11 +172,11 @@ void chanrec::AddHalfoppedUser(userrec* user) void chanrec::DelHalfoppedUser(userrec* user) { - CUList::iterator a = internal_halfop_userlist.find(user); + CUListIter a = internal_halfop_userlist.find(user); + if (a != internal_halfop_userlist.end()) { internal_halfop_userlist.erase(a); - return; } } @@ -189,11 +187,11 @@ void chanrec::AddVoicedUser(userrec* user) void chanrec::DelVoicedUser(userrec* user) { - CUList::iterator a = internal_voice_userlist.find(user); + CUListIter a = internal_voice_userlist.find(user); + if (a != internal_voice_userlist.end()) { internal_voice_userlist.erase(a); - return; } } @@ -373,11 +371,11 @@ chanrec* add_channel(userrec *user, const char* cn, const char* key, bool overri log(DEBUG,"Passed channel checks"); - for (std::vector::const_iterator index = user->chans.begin(); index != user->chans.end(); index++) + for (UserChanList::const_iterator index = user->chans.begin(); index != user->chans.end(); index++) { - if ((ucrec*)(*index)->channel == NULL) + if ((*index)->channel == NULL) { - return ForceChan(Ptr,(ucrec*)(*index),user,created); + return ForceChan(Ptr, *index, user, created); } } @@ -631,14 +629,14 @@ void kick_channel(userrec *src,userrec *user, chanrec *Ptr, char* reason) FOREACH_MOD(I_OnUserKick,OnUserKick(src,user,Ptr,reason)); - for (std::vector::const_iterator i = user->chans.begin(); i != user->chans.end(); i++) + for (UserChanList::const_iterator i = user->chans.begin(); i != user->chans.end(); i++) { /* zap it from the channel list of the user */ - if ((((ucrec*)(*i))->channel) && (((ucrec*)(*i))->channel == Ptr)) + if ((*i)->channel && ((*i)->channel == Ptr)) { WriteChannel(Ptr,src,"KICK %s %s :%s",Ptr->name, user->nick, reason); - ((ucrec*)(*i))->uc_modes = 0; - ((ucrec*)(*i))->channel = NULL; + (*i)->uc_modes = 0; + (*i)->channel = NULL; log(DEBUG,"del_channel: unlinked: %s %s",user->nick,Ptr->name); break; }