]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_sslmodes.cpp
Add SHUN as a /filter action
[user/henk/code/inspircd.git] / src / modules / m_sslmodes.cpp
index 790ed5b0363416faabe4446183daae2bd9504512..6d1d62782d4a162386132e39fbca8e0ea34c6692 100644 (file)
 #include "inspircd.h"
 #include "modules/ssl.h"
 
+enum
+{
+       // From UnrealIRCd.
+       ERR_SECUREONLYCHAN = 489
+};
+
 /** Handle channel mode +z
  */
 class SSLMode : public ModeHandler
@@ -37,7 +43,7 @@ class SSLMode : public ModeHandler
        {
        }
 
-       ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding)
+       ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string& parameter, bool adding) CXX11_OVERRIDE
        {
                if (adding)
                {
@@ -48,13 +54,13 @@ class SSLMode : public ModeHandler
                                        if (!API)
                                                return MODEACTION_DENY;
 
-                                       const UserMembList* userlist = channel->GetUsers();
-                                       for(UserMembCIter i = userlist->begin(); i != userlist->end(); i++)
+                                       const Channel::MemberMap& userlist = channel->GetUsers();
+                                       for (Channel::MemberMap::const_iterator i = userlist.begin(); i != userlist.end(); ++i)
                                        {
                                                ssl_cert* cert = API->GetCertificate(i->first);
-                                               if (!cert && !ServerInstance->ULine(i->first->server))
+                                               if (!cert && !i->first->server->IsULine())
                                                {
-                                                       source->WriteNumeric(ERR_ALLMUSTSSL, "%s %s :all members of the channel must be connected via SSL", source->nick.c_str(), channel->name.c_str());
+                                                       source->WriteNumeric(ERR_ALLMUSTSSL, channel->name, "all members of the channel must be connected via SSL");
                                                        return MODEACTION_DENY;
                                                }
                                        }
@@ -107,7 +113,7 @@ class ModuleSSLModes : public Module
                        else
                        {
                                // Deny
-                               user->WriteServ( "489 %s %s :Cannot join channel; SSL users only (+z)", user->nick.c_str(), cname.c_str());
+                               user->WriteNumeric(ERR_SECUREONLYCHAN, cname, "Cannot join channel; SSL users only (+z)");
                                return MOD_RES_DENY;
                        }
                }