* ---------------------------------------------------
*/
-#include "configreader.h"
#include "inspircd.h"
+#include "configreader.h"
#include "mode.h"
#include "channels.h"
#include "users.h"
CUList* list = channel->GetHalfoppedUsers();
CUList copy;
char moderemove[MAXBUF];
- userrec* n = new userrec(ServerInstance);
- n->SetFd(FD_MAGIC_NUMBER);
for (CUList::iterator i = list->begin(); i != list->end(); i++)
{
- userrec* n = i->second;
- copy.insert(std::make_pair(n,n));
+ userrec* n = i->first;
+ copy.insert(std::make_pair(n,n->nick));
}
+
for (CUList::iterator i = copy.begin(); i != copy.end(); i++)
{
sprintf(moderemove,"-%c",this->GetModeChar());
- const char* parameters[] = { channel->name, moderemove, i->second->nick };
- ServerInstance->SendMode(parameters, 3, n);
+ const char* parameters[] = { channel->name, moderemove, i->first->nick };
+ ServerInstance->SendMode(parameters, 3, ServerInstance->FakeClient);
}
- delete n;
+
}
void ModeChannelHalfOp::RemoveMode(userrec* user)
int status = channel->GetStatus(source);
- ServerInstance->Log(DEBUG,"Halfop handler, source=%s channel=%s parameter=%s adding=%d",source->nick, channel->name, parameter.c_str(), adding);
-
/* Call the correct method depending on wether we're adding or removing the mode */
if (adding)
{
{
userrec *d = ServerInstance->Modes->SanityChecks(user,dest,chan,status);
- ServerInstance->Log(DEBUG,"Add halfop");
-
if (d)
{
if (IS_LOCAL(user))
}
}
- ServerInstance->Log(DEBUG,"Calling Grant");
return ServerInstance->Modes->Grant(d,chan,UCMODE_HOP);
}
return "";
{
userrec *d = ServerInstance->Modes->SanityChecks(user,dest,chan,status);
- ServerInstance->Log(DEBUG,"Del halfop");
-
if (d)
{
if (IS_LOCAL(user))
}
}
- ServerInstance->Log(DEBUG,"Calling revoke");
return ServerInstance->Modes->Revoke(d,chan,UCMODE_HOP);
}
return "";