aboutsummaryrefslogtreecommitdiff
path: root/src/modules/m_kicknorejoin.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Show the mode syntax in ERR_INVALIDMODEPARAM.Gravatar Peter Powell2019-06-121-0/+1
|
* Some more text fixes and improvements (#1618).Gravatar Robby2019-04-281-2/+2
|
* 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.
* Make kicknorejoin respect /INVITE (#1514).Gravatar A_D2018-09-231-1/+4
|
* Fix a bunch more conflicting/unnamed numerics.Gravatar Peter Powell2018-08-141-1/+8
|
* Add ERR_INVALIDMODEPARAM for responding to invalid mode params.Gravatar Peter Powell2018-01-291-0/+3
| | | | | | | | | | | | | | | 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.
* 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.
* Convert WriteNumeric() calls to pass the parameters of the numeric as method ↵Gravatar Attila Molnar2016-02-251-1/+1
| | | | parameters
* m_kicknorejoin: Advertise upper bound. Closes #913Gravatar Daniel Vassdal2015-02-221-2/+8
|
* m_kicknorejoin Store kicked users in a vectorGravatar Attila Molnar2015-01-231-8/+26
|
* m_kicknorejoin Move logic that tracks kicked users into KickRejoinDataGravatar Attila Molnar2015-01-231-25/+34
|
* Add ParamModeBase and ParamMode, change all parameter modes to inherit from ↵Gravatar Attila Molnar2014-02-151-41/+35
| | | | | | | | | | 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
* 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-2/+0
|
* Remove $Core and $Mod* comments apart from $ModDep.Gravatar Peter Powell2013-07-041-2/+0
|
* Call Channel::SetModeParam() from the mode parser when needed instead of ↵Gravatar attilamolnar2013-06-131-2/+0
| | | | requiring mode handlers to do it
* Merge insp20Gravatar attilamolnar2013-06-061-1/+1
|\
| * Remove unused variables, avoid copies where possible, check empty() instead ↵Gravatar attilamolnar2013-05-161-1/+1
| | | | | | | | | | | | of size() == 0 Most of these were detected by cppcheck
* | Tidy up keywords on module methods.Gravatar Peter Powell2013-05-151-5/+5
| | | | | | | | | | - 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.
* | Merge insp20Gravatar attilamolnar2013-04-281-24/+35
|\|
| * m_kicknorejoin Store and compare uuids instead pointersGravatar attilamolnar2013-04-161-3/+3
| | | | | | | | Fixes the off chance scenario where we disallow a join because a previously kicked user has quit and the User who is trying to join happens to be allocated at the exact same memory location
| * m_kicknorejoin Limit time to 30m by defaultGravatar attilamolnar2013-04-161-14/+37
| | | | | | | | | | | | | | | | In the current implementation we only expire entries when someone joins, without a limit it was possible to make us practically never remove entries and consume (a tiny amount of) memory for each entry until the mode was removed/parameter was changed The default limit of 30m is chosen to not surprise people when they upgrade. If you need to prevent rejoins for more than a minute then you should set a (timed)ban instead Config option is available to change the limit (2.0 only)
| * m_kicknorejoin Minor improvementsGravatar attilamolnar2013-04-161-8/+4
| | | | | | | | | | - Ignore remote users - Remove expired items in one pass
* | OnUserPreJoin is a local-only hook, change User* parameter to LocalUser*Gravatar attilamolnar2013-04-131-1/+1
| |
* | Whitespace and empty destructor removal, minor coding style changesGravatar attilamolnar2013-04-011-6/+0
| |
* | Change channel name parameter of Module::OnUserPreJoin() and ↵Gravatar attilamolnar2013-04-011-1/+1
|/ | | | Channel::JoinUser() to std::string from char*
* 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
|
* Fix more undefined behavior caused by referencing the returned buffer by ↵Gravatar attilamolnar2012-09-301-2/+3
| | | | | | std::string::c_str() when the object is temporary See 83c7cc45daf6fb1f8c36f15297a4657e45a34e88
* Replace copyright headers with headers granting specific authors copyrightGravatar Robby-2012-04-191-8/+20
|
* Fix crash on kick when +J is set, +misc cleanupGravatar danieldg2010-02-071-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12396 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
* Add ParamChannelModeHandlerGravatar danieldg2009-11-151-65/+19
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12134 e03df62e-2008-0410-955e-edbf42e46eb7
* Get rid of ModePairGravatar danieldg2009-10-241-8/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11963 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
* Add names for all modes (part 1 of named channel mode list)Gravatar danieldg2009-10-081-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11809 e03df62e-2008-0410-955e-edbf42e46eb7
* Run DelMode and DelModeWatcher in RemoveModuleGravatar danieldg2009-10-051-1/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11799 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove InspIRCd* parameters and fieldsGravatar danieldg2009-09-261-3/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11763 e03df62e-2008-0410-955e-edbf42e46eb7
* Simplify ModeHandler constructorGravatar danieldg2009-09-131-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11701 e03df62e-2008-0410-955e-edbf42e46eb7
* Module API changes to use Membership* where sensibleGravatar danieldg2009-09-131-5/+5
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11699 e03df62e-2008-0410-955e-edbf42e46eb7
* Change Extensible to use strongly typed entriesGravatar danieldg2009-09-131-46/+19
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11696 e03df62e-2008-0410-955e-edbf42e46eb7
* ModResult conversion: Change return type of all module functionsGravatar danieldg2009-09-021-3/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11634 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove "servermode" parameter, replace with IS_FAKE() which is more reliableGravatar danieldg2009-09-021-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11633 e03df62e-2008-0410-955e-edbf42e46eb7
* Add Module* creator to Command and ModeHandlerGravatar danieldg2009-09-021-2/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11631 e03df62e-2008-0410-955e-edbf42e46eb7
* Use CheckTimeStamp to merge modes on netburstGravatar danieldg2009-09-021-6/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11596 e03df62e-2008-0410-955e-edbf42e46eb7
* Change allocation of commands/modesGravatar danieldg2009-09-021-7/+4
| | | | | | | | | | API change: Commands passed to AddCommand are no longer deleted automatically This removes lots of needless heap allocation and fixes a few memory leaks by allocating commands and modes as part of the Module rather than creating them separately in the module constructor. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11592 e03df62e-2008-0410-955e-edbf42e46eb7
* Overloading SetMode seems to cause the compiler to interpret "" as a bool ↵Gravatar danieldg2009-04-291-3/+3
| | | | | | and not a string. Fixes bug #849 git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11335 e03df62e-2008-0410-955e-edbf42e46eb7