diff options
author | Adam <Adam@anope.org> | 2011-10-24 13:19:51 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2011-10-24 13:19:51 -0400 |
commit | ccf29c013465ba4b9709c04ba4452f4454b1ebdc (patch) | |
tree | ca62867a6640ef2f572337d611c0f3b3aef3387b /src/protocol.cpp | |
parent | d0513d6506ce34b57874ad265daf38ca67878aa0 (diff) |
Fixed the capab parser to parse capab tokens prefixed with :. Fixes not detecting quitstorm support on ratbox
Diffstat (limited to 'src/protocol.cpp')
-rw-r--r-- | src/protocol.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/protocol.cpp b/src/protocol.cpp index 64932632e..2bbad4adb 100644 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -515,15 +515,19 @@ bool IRCdMessage::OnCapab(const Anope::string &, const std::vector<Anope::string { for (unsigned i = 0; i < params.size(); ++i) { - for (unsigned j = 0; !Capab_Info[j].Token.empty(); ++j) - { - if (Capab_Info[j].Token.equals_ci(params[i])) + spacesepstream sep(params[i]); + Anope::string token; + + while (sep.GetToken(token)) + for (unsigned j = 0; !Capab_Info[j].Token.empty(); ++j) { - Capab.SetFlag(Capab_Info[j].Flag); - Log(LOG_DEBUG) << "Capab: Enabling " << Capab_Info[j].Token; - break; + if (Capab_Info[j].Token.equals_ci(token)) + { + Capab.SetFlag(Capab_Info[j].Flag); + Log(LOG_DEBUG) << "Capab: Enabling " << Capab_Info[j].Token; + break; + } } - } } return true; |