- // fetch the user's current silence list
- silencelist* sl;
- user->GetExt("silence_list", sl);
- // what, they dont have one??? WE'RE ALL GONNA DIE! ...no, we just create an empty one.
- if (!sl)
- {
- sl = new silencelist;
- user->Extend("silence_list", sl);
- }
- if (sl->size() > maxsilence)
- {
- user->WriteNumeric(952, "%s %s :Your silence list is full",user->nick, user->nick);
- return CMD_FAILURE;
- }
- for (silencelist::iterator n = sl->begin(); n != sl->end(); n++)
- {
- irc::string listitem = n->first.c_str();
- if (listitem == mask && n->second == pattern)
- {
- user->WriteNumeric(952, "%s %s :%s %s is already on your silence list",user->nick, user->nick, mask.c_str(), DecompPattern(pattern).c_str());
- return CMD_FAILURE;
- }
- }
- if (((pattern & SILENCE_EXCLUDE) > 0))
- {
- sl->push_front(silenceset(mask,pattern));
- }
- else
- {
- sl->push_back(silenceset(mask,pattern));
- }
- user->WriteNumeric(951, "%s %s :Added %s %s to silence list",user->nick, user->nick, mask.c_str(), DecompPattern(pattern).c_str());
- return CMD_SUCCESS;
+ ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "Malformed silence flags received for %s: %s",
+ user->uuid.c_str(), flagstr.c_str());
+ delete list;
+ return;