]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_cap.cpp
Work around removing shuns on nicks when the nick is online.
[user/henk/code/inspircd.git] / src / modules / m_cap.cpp
index 37478243faff19eb27cc3eb9264c9ed7859fa329..ae9e824f448c61ab2b94dfe20f29c47572c2a5e0 100644 (file)
@@ -66,7 +66,12 @@ class CommandCAP : public Command
 
                        while (cap_stream.GetToken(cap_))
                        {
-                               Data.wanted.push_back(cap_);
+                               // Whilst the handling of extraneous spaces is not currently defined in the CAP specification
+                               // every single other implementation ignores extraneous spaces. Lets copy them for
+                               // compatibility purposes.
+                               trim(cap_);
+                               if (!cap_.empty())
+                                       Data.wanted.push_back(cap_);
                        }
 
                        reghold.set(user, 1);
@@ -115,7 +120,7 @@ class CommandCAP : public Command
                }
                else
                {
-                       user->WriteNumeric(ERR_INVALIDCAPSUBCOMMAND, "%s %s :Invalid CAP subcommand", user->nick.c_str(), subcommand.c_str());
+                       user->WriteNumeric(ERR_INVALIDCAPSUBCOMMAND, "%s %s :Invalid CAP subcommand", user->nick.c_str(), subcommand.empty() ? "*" : subcommand.c_str());
                        return CMD_FAILURE;
                }