aboutsummaryrefslogtreecommitdiff
path: root/src/modules/m_messageflood.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Show the mode syntax in ERR_INVALIDMODEPARAM.Gravatar Peter Powell2019-06-121-0/+1
|
* Make messageflood weights configurable.Gravatar Peter Powell2019-06-061-7/+19
| | | | | | | Also, default TAGMSG to being worth 0.2 NOTICE/PRIVMSG. This should prevent flood kicks from typing notifications. Closes #1649.
* Some more text fixes and improvements (#1618).Gravatar Robby2019-04-281-1/+1
|
* Update trivially-modifiable modules to handle tag messages.Gravatar Peter Powell2019-04-161-4/+18
|
* Fix conversion issues by replacing ConvToInt with ConvToNum<T>.Gravatar Peter Powell2018-12-121-2/+2
| | | | | | | The former was a thin wrapper around atol and brought with it all of the weird parsing logic of atol which is almost never what is actually wanted. It also almost never returned the numeric type which is actually wanted which can cause weird issues when casting.
* Add ERR_INVALIDMODEPARAM for responding to invalid mode params.Gravatar Peter Powell2018-01-291-2/+2
| | | | | | | | | | | | | | | Currently on invalid modes we do a combination of different things: 1. Send a custom mode-specific numeric (which often collides with other modes). 2. Send a server notice. 3. Do absolutely nothing. This new numeric is a generic way of handling invalid parameters when setting a mode that avoids all of the mistakes of the previous behaviour.
* Rework message handling.Gravatar Peter Powell2018-01-061-3/+3
| | | | | | | | | | | | | - Move all message-related types to their own header to make moving them to a cross-module events easier. - Rename OnUserMessage to OnUserPostMessage. - Rename OnText to OnUserMessage. - Replace the dest, target_type, and status parameters with the MessageTarget class. - Replace the text, exempt_list, and msgtype parameters with the MessageDetails struct. - Add echooriginal and originaltext to the MessageDetails struct to allow spam filtering to not be broken by cap echo-message.
* Add the override keyword in places that it is missing.Gravatar Peter Powell2017-11-211-1/+1
| | | | GCCs warnings for this are much better than Clangs.
* Fix a ton of -Wsign-conversion warnings.Gravatar Peter Powell2017-11-171-1/+4
|
* Hide User#host and User#dhost and use accessors to modify them.Gravatar Peter Powell2017-10-281-1/+1
| | | | | This removes the need to invalidate the cache after changing a user's hostname.
* Add a helper function for calling the OnCheckExemption event.Gravatar Peter Powell2017-10-211-2/+1
|
* Merge pull request #1271 from SaberUK/master+exemptionGravatar Peter Powell2017-07-271-2/+7
|\ | | | | Move the OnCheckExemption hook out of the core.
| * Move the OnCheckExemption hook out of the core.Gravatar Peter Powell2017-03-201-2/+7
| |
* | Add CXX11_OVERRIDE to overridden members that lack it.Gravatar Peter Powell2017-07-121-1/+1
|/ | | | | This fixes a ton of warnings when building on compilers that default to C++11 or newer.
* m_messageflood Improve kick messageGravatar Attila Molnar2016-08-241-2/+2
| | | | | | Fixes issue #1019 reported by @B00mX0r Also add back a missing word caused by an oversight in #531
* Convert WriteNumeric() calls to pass the parameters of the numeric as method ↵Gravatar Attila Molnar2016-02-251-2/+2
| | | | parameters
* Change type of some associative containers to their flat versions, including ↵Gravatar Attila Molnar2014-12-151-6/+2
| | | | Extensible storage
* Replace irc::modestacker usage with the new ModeParser::Process()Gravatar Attila Molnar2014-09-031-5/+3
|
* Add ParamModeBase and ParamMode, change all parameter modes to inherit from ↵Gravatar Attila Molnar2014-02-151-37/+29
| | | | | | | | | | ParamMode - Type of the extension used to store data is a template parameter - The extension is automatically unset when the mode is unset - Handlers inheriting from ParamMode have to provide OnSet() and SerializeParam(); may optionally provide OnUnset() - Transparently handle the case when OnSet() modifies the mode parameter - Remove Channel::custom_mode_params map; ask the mode handlers to serialize their parameters instead
* Remove PreText()-like functionsGravatar Attila Molnar2014-01-081-9/+5
| | | | Do processing in OnUserPreMessage()
* Use WriteNumeric() everywhere we send numerics and include the user's nick ↵Gravatar Adam2013-11-121-2/+2
| | | | automatically
* Automatically register ServiceProviders created by modulesGravatar attilamolnar2013-09-081-6/+0
|
* Automatically attach modules to eventsGravatar attilamolnar2013-08-041-1/+0
|
* Remove $Core and $Mod* comments apart from $ModDep.Gravatar Peter Powell2013-07-041-2/+0
|
* Replace hardcoded mode letters passed to IsModeSet() and GetModeParameter() ↵Gravatar attilamolnar2013-07-011-2/+2
| | | | with ModeHandlers, part 1
* Call Channel::SetModeParam() from the mode parser when needed instead of ↵Gravatar attilamolnar2013-06-131-2/+0
| | | | requiring mode handlers to do it
* Introduce ModeProcessFlags, can be passed to ModeParser::Process() to ↵Gravatar attilamolnar2013-06-131-1/+1
| | | | | | | | indicate local only mode changes and mode merges Change ProtocolInterface::SendMode() to take source and destination parameters, and call it from the mode parser whenever the mode change is global This deprecates the ambiguous InspIRCd::SendMode() and InspIRCd::SendGlobalMode() interface (the latter sent mode changes originating from local users twice, etc.)
* Replace some C string operations with the + operator.Gravatar Peter Powell2013-06-061-1/+1
|
* Remove OnUserPreNotice and OnUserNotice hooks, add MessageType argument to ↵Gravatar attilamolnar2013-05-201-12/+2
| | | | | | OnUserMessage and OnUserPreMessage All modules (except m_nonotice) that perform filtering on messages have common logic for handling PRIVMSGs and NOTICEs and most of them run the exact same code in both cases
* Tidy up keywords on module methods.Gravatar Peter Powell2013-05-151-4/+4
| | | | | - Remove virtual keyword from a ton of methods which don't need it. - Add override keyword to a ton of methods which do need it.
* Replace some C-isms with C++-isms.Gravatar Peter Powell2013-05-151-3/+3
| | | | | | * 'const char*' to 'const std::string&'. * snprintf to std::string concatenation. * Replace duplicated OneOfMatches with InspIRCd::MatchMask.
* m_messageflood Ask to be the last to handle OnUserPreMessage/OnUserPreNoticeGravatar attilamolnar2013-01-021-1/+4
| | | | Fixes #394 reported by @JDowny
* Register all commands, modes and extensions using AddService()Gravatar attilamolnar2012-12-021-3/+2
| | | | AddService() throws an exception if an item cannot be registered, modules no longer need to worry about AddMode() etc. failing
* Dynamically determine the size of the eventlist[] passed to Attach()Gravatar attilamolnar2012-12-021-1/+1
| | | | m_sqlauth was attached to I_OnUserDisconnect but didn't provide a handler for it, remove
* Attach to events and register services in init()Gravatar attilamolnar2012-12-021-0/+4
|
* m_messageflood Unset +f when the module is unloadedGravatar attilamolnar2012-08-081-10/+7
|
* m_messageflood Make code more readableGravatar attilamolnar2012-08-081-80/+29
| | | | | Remove unnecessary checks Use std::string::find() and ::substr() for finding the delimiter and splitting the parameter
* m_messageflood Perform at most one std::map::find() per message if we aren't ↵Gravatar attilamolnar2012-08-081-22/+4
| | | | kicking the user
* Replace copyright headers with headers granting specific authors copyrightGravatar Robby-2012-04-191-8/+20
|
* Restore <options:exemptchanops> with long namesGravatar danieldg2010-02-201-2/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12502 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix empty FMODE being sent if SendMode mode changesGravatar danieldg2010-01-281-3/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12323 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove VF_COMMON from mode-provider modules (no longer needed due to better ↵Gravatar danieldg2010-01-151-1/+1
| | | | | | CAPAB checking) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12263 e03df62e-2008-0410-955e-edbf42e46eb7
* ...because every now and again, i have to do a massive commit.Gravatar brain2010-01-111-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12248 e03df62e-2008-0410-955e-edbf42e46eb7
* Get rid of ModePairGravatar danieldg2009-10-241-9/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11963 e03df62e-2008-0410-955e-edbf42e46eb7
* Make User::uuid and User::server constGravatar danieldg2009-10-231-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11962 e03df62e-2008-0410-955e-edbf42e46eb7
* Get rid of more unneeded parent classesGravatar danieldg2009-10-201-3/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11930 e03df62e-2008-0410-955e-edbf42e46eb7
* Cull channels, warn when Extensible objects are not culled as they must beGravatar danieldg2009-10-181-4/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11901 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove dummy API_VERSION from Version constructorGravatar danieldg2009-10-171-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11887 e03df62e-2008-0410-955e-edbf42e46eb7
* Move static map of extensions into ServerInstance, add const-correctnessGravatar danieldg2009-10-141-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11873 e03df62e-2008-0410-955e-edbf42e46eb7
* Make OnChannelRestrictionApply take a User* instead of a Membership* ↵Gravatar danieldg2009-10-121-1/+1
| | | | | | [jackmcbarn] git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11858 e03df62e-2008-0410-955e-edbf42e46eb7