/* $ModDesc: Provides support for unreal-style channel mode +z */
+static char* dummy;
+
class SSLMode : public ModeHandler
{
Server* Srv;
{
if (!channel->IsModeSet('z'))
{
- chanuserlist userlist = Srv->GetUsers(channel);
- for(unsigned int i = 0; i < userlist.size(); i++)
+ if (IS_LOCAL(source))
{
- if(!userlist[i]->GetExt("ssl"))
+ CUList* userlist = channel->GetUsers();
+ for(CUList::iterator i = userlist->begin(); i != userlist->end(); i++)
{
- WriteServ(source->fd, "490 %s %s :all members of the channel must be connected via SSL", source->nick, channel->name);
- return MODEACTION_DENY;
+ if(!i->second->GetExt("ssl", dummy))
+ {
+ source->WriteServ("490 %s %s :all members of the channel must be connected via SSL", source->nick, channel->name);
+ return MODEACTION_DENY;
+ }
}
}
channel->SetMode('z',true);
{
if(chan && chan->IsModeSet('z'))
{
- if(user->GetExt("ssl"))
+ if(user->GetExt("ssl", dummy))
{
// Let them in
return 0;
else
{
// Deny
- WriteServ(user->fd, "489 %s %s :Cannot join channel (+z)", user->nick, cname);
+ user->WriteServ( "489 %s %s :Cannot join channel (+z)", user->nick, cname);
return 1;
}
}