]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_cgiirc.cpp
Only assign NewServices once the duplicate check is done.
[user/henk/code/inspircd.git] / src / modules / m_cgiirc.cpp
index a40d06f14045d097c81b4d283a48cd868bbe4186..52c24e50ad89eb815173d9abbc46b72efbbf09d2 100644 (file)
@@ -4,7 +4,7 @@
  *   Copyright (C) 2019 linuxdaemon <linuxdaemon.irc@gmail.com>
  *   Copyright (C) 2014 md_5 <git@md-5.net>
  *   Copyright (C) 2014 Googolplexed <googol@googolplexed.net>
- *   Copyright (C) 2013, 2017-2018 Sadie Powell <sadie@witchery.services>
+ *   Copyright (C) 2013, 2017-2018, 2020 Sadie Powell <sadie@witchery.services>
  *   Copyright (C) 2013 Adam <Adam@anope.org>
  *   Copyright (C) 2012-2013, 2015 Attila Molnar <attilamolnar@hush.com>
  *   Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be>
@@ -346,11 +346,22 @@ class ModuleCgiIRC
                // cannot match this connect class.
                const std::string* gateway = cmd.gateway.get(user);
                if (!gateway)
+               {
+                       ServerInstance->Logs->Log("CONNECTCLASS", LOG_DEBUG, "The %s connect class is not suitable as it requires a connection via a WebIRC gateway",
+                                       myclass->GetName().c_str());
                        return MOD_RES_DENY;
+               }
 
                // If the gateway matches the <connect:webirc> constraint then
                // allow the check to continue. Otherwise, reject it.
-               return InspIRCd::Match(*gateway, webirc) ? MOD_RES_PASSTHRU : MOD_RES_DENY;
+               if (!InspIRCd::Match(*gateway, webirc))
+               {
+                       ServerInstance->Logs->Log("CONNECTCLASS", LOG_DEBUG, "The %s connect class is not suitable as the WebIRC gateway name (%s) does not match %s",
+                                       myclass->GetName().c_str(), gateway->c_str(), webirc.c_str());
+                       return MOD_RES_DENY;
+               }
+
+               return MOD_RES_PASSTHRU;
        }
 
        ModResult OnUserRegister(LocalUser* user) CXX11_OVERRIDE