- else if ((!channel->IsModeSet('k')) || ((adding) && (!IS_LOCAL(source))))
- {
- /* Key isnt currently set */
- if ((parameter.length()) && (parameter.rfind(' ') == std::string::npos))
- {
- std::string ckey;
- ckey.assign(parameter, 0, 32);
- channel->SetModeParam('k', ckey.c_str(), adding);
- channel->SetMode('k', adding);
- parameter = ckey;
- return MODEACTION_ALLOW;
- }
- else
- return MODEACTION_DENY;
- }
- else if (((channel->IsModeSet('k')) && (parameter == channel->GetModeParameter('k'))) || ((!adding) && (!IS_LOCAL(source))))
- {
- /* Key is currently set, and correct key was given */
- channel->SetMode('k', adding);
- return MODEACTION_ALLOW;
- }
+ }
+
+ /* invalid keys */
+ if (!parameter.length())
+ return MODEACTION_DENY;
+
+ if (parameter.rfind(' ') != std::string::npos)