X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_joinflood.cpp;h=33b6b8b61ab5754c859115ec4349d063ae7c03bb;hb=1484a054870bdfe94346057053d5c8e48a708232;hp=cd233a01cec7480bc86c3f2c458fd100a884d42b;hpb=de3d300845590cf4308520ee98693f004ddda376;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_joinflood.cpp b/src/modules/m_joinflood.cpp index cd233a01c..33b6b8b61 100644 --- a/src/modules/m_joinflood.cpp +++ b/src/modules/m_joinflood.cpp @@ -25,7 +25,7 @@ using namespace std; /* $ModDesc: Provides channel mode +j (join flood protection) */ -class joinfloodsettings +class joinfloodsettings : public classbase { public: @@ -101,6 +101,8 @@ class JoinFlood : public ModeHandler ModeAction OnModeChange(userrec* source, userrec* dest, chanrec* channel, std::string ¶meter, bool adding) { + joinfloodsettings* dummy; + if (adding) { char ndata[MAXBUF]; @@ -132,11 +134,11 @@ class JoinFlood : public ModeHandler } else { - if (!channel->GetExt("joinflood")) + if (!channel->GetExt("joinflood", dummy)) { parameter = ConvToStr(njoins) + ":" +ConvToStr(nsecs); joinfloodsettings *f = new joinfloodsettings(nsecs,njoins); - channel->Extend("joinflood",(char*)f); + channel->Extend("joinflood", f); channel->SetMode('j', true); channel->SetModeParam('j', parameter.c_str(), true); return MODEACTION_ALLOW; @@ -151,9 +153,10 @@ class JoinFlood : public ModeHandler } else { - if (channel->GetExt("joinflood")) + if (channel->GetExt("joinflood", dummy)) { - joinfloodsettings *f = (joinfloodsettings*)channel->GetExt("joinflood"); + joinfloodsettings *f; + channel->GetExt("joinflood", f); DELETE(f); channel->Shrink("joinflood"); channel->SetMode('j', false); @@ -183,8 +186,8 @@ class ModuleJoinFlood : public Module { if (chan) { - joinfloodsettings *f = (joinfloodsettings*)chan->GetExt("joinflood"); - if (f) + joinfloodsettings *f; + if (chan->GetExt("joinflood", f)) { if (f->islocked()) { @@ -198,8 +201,8 @@ class ModuleJoinFlood : public Module virtual void OnUserJoin(userrec* user, chanrec* channel) { - joinfloodsettings *f = (joinfloodsettings*)channel->GetExt("joinflood"); - if (f) + joinfloodsettings *f; + if (channel->GetExt("joinflood",f)) { f->addjoin(); if (f->shouldlock()) @@ -213,9 +216,9 @@ class ModuleJoinFlood : public Module void OnChannelDelete(chanrec* chan) { - if (chan->GetExt("joinflood")) + joinfloodsettings *f; + if (chan->GetExt("joinflood",f)) { - joinfloodsettings *f = (joinfloodsettings*)chan->GetExt("joinflood"); DELETE(f); chan->Shrink("joinflood"); }