+ if (adding)
+ {
+ if (!channel->IsModeSet('z'))
+ {
+ if (IS_LOCAL(source))
+ {
+ CUList* userlist = channel->GetUsers();
+ for(CUList::iterator i = userlist->begin(); i != userlist->end(); i++)
+ {
+ if(!i->first->GetExt("ssl", dummy) && !ServerInstance->ULine(i->first->server))
+ {
+ source->WriteNumeric(ERR_ALLMUSTSSL, "%s %s :all members of the channel must be connected via SSL", source->nick.c_str(), channel->name.c_str());
+ return MODEACTION_DENY;
+ }
+ }
+ }
+ channel->SetMode('z',true);
+ return MODEACTION_ALLOW;
+ }
+ else
+ {
+ return MODEACTION_DENY;
+ }
+ }
+ else
+ {
+ if (channel->IsModeSet('z'))
+ {
+ channel->SetMode('z',false);
+ return MODEACTION_ALLOW;
+ }
+
+ return MODEACTION_DENY;
+ }