]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_dccallow.cpp
Fixes by misspell-fixer
[user/henk/code/inspircd.git] / src / modules / m_dccallow.cpp
index 2d7fb3ce4e1532b33a16708e1ea2dafe0c719433..98bcbf4cd46506083603d3fd5adb813a2907516b 100644 (file)
@@ -4,7 +4,7 @@
  *   Copyright (C) 2019 Matt Schatz <genius3000@g3k.solutions>
  *   Copyright (C) 2018 linuxdaemon <linuxdaemon.irc@gmail.com>
  *   Copyright (C) 2016 Adam <Adam@anope.org>
- *   Copyright (C) 2013, 2017-2019 Sadie Powell <sadie@witchery.services>
+ *   Copyright (C) 2013, 2017-2020 Sadie Powell <sadie@witchery.services>
  *   Copyright (C) 2012-2016 Attila Molnar <attilamolnar@hush.com>
  *   Copyright (C) 2012, 2014, 2019 Robby <robby@chatbelgie.be>
  *   Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
@@ -154,6 +154,8 @@ class DCCAllowExt : public SimpleExtItem<dccallowlist>
                        list->push_back(dccallow);
                }
 
+               // The value was well formed.
+               set(user, list);
        }
 
        std::string ToInternal(const Extensible* container, void* item) const CXX11_OVERRIDE
@@ -187,7 +189,7 @@ class CommandDccallow : public Command
                , ext(Ext)
        {
                syntax = "[(+|-)<nick> [<time>]]|[LIST|HELP]";
-               /* XXX we need to fix this so it can work with translation stuff (i.e. move +- into a seperate param */
+               /* XXX we need to fix this so it can work with translation stuff (i.e. move +- into a separate param */
        }
 
        CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
@@ -413,14 +415,16 @@ class ModuleDCCAllow : public Module
                        if (user == u)
                                return MOD_RES_PASSTHRU;
 
-                       if ((details.text.length()) && (details.text[0] == '\1'))
+                       std::string ctcpname;
+                       std::string ctcpbody;
+                       if (details.IsCTCP(ctcpname, ctcpbody))
                        {
                                Expire();
 
                                // :jamie!jamie@test-D4457903BA652E0F.silverdream.org PRIVMSG eimaj :DCC SEND m_dnsbl.cpp 3232235786 52650 9676
                                // :jamie!jamie@test-D4457903BA652E0F.silverdream.org PRIVMSG eimaj :VERSION
 
-                               if (strncmp(details.text.c_str(), "\1DCC ", 5) == 0)
+                               if (irc::equals(ctcpname, "DCC") && !ctcpbody.empty())
                                {
                                        dl = ext.get(u);
                                        if (dl && dl->size())
@@ -430,18 +434,17 @@ class ModuleDCCAllow : public Module
                                                                return MOD_RES_PASSTHRU;
                                        }
 
-                                       std::string buf = details.text.substr(5);
-                                       size_t s = buf.find(' ');
+                                       size_t s = ctcpbody.find(' ');
                                        if (s == std::string::npos)
                                                return MOD_RES_PASSTHRU;
 
-                                       const std::string type = buf.substr(0, s);
+                                       const std::string type = ctcpbody.substr(0, s);
 
-                                       if (stdalgo::string::equalsci(type, "SEND"))
+                                       if (irc::equals(type, "SEND"))
                                        {
                                                size_t first;
 
-                                               buf = buf.substr(s + 1);
+                                               std::string buf = ctcpbody.substr(s + 1);
 
                                                if (!buf.empty() && buf[0] == '"')
                                                {
@@ -489,7 +492,7 @@ class ModuleDCCAllow : public Module
                                                u->WriteNotice("If you trust " + user->nick + " and were expecting this, you can type /DCCALLOW HELP for information on the DCCALLOW system.");
                                                return MOD_RES_DENY;
                                        }
-                                       else if ((blockchat) && (stdalgo::string::equalsci(type, "CHAT")))
+                                       else if (blockchat && irc::equals(type, "CHAT"))
                                        {
                                                user->WriteNotice("The user " + u->nick + " is not accepting DCC CHAT requests from you.");
                                                u->WriteNotice(user->nick + " (" + user->ident + "@" + user->GetDisplayedHost() + ") attempted to initiate a DCC CHAT session, which was blocked.");
@@ -604,7 +607,7 @@ class ModuleDCCAllow : public Module
 
        Version GetVersion() CXX11_OVERRIDE
        {
-               return Version("Provides the DCCALLOW command", VF_COMMON | VF_VENDOR);
+               return Version("Allows the server administrator to configure what files are allowed to be sent via DCC SEND and allows users to configure who can send them DCC CHAT and DCC SEND requests.", VF_COMMON | VF_VENDOR);
        }
 };