aboutsummaryrefslogtreecommitdiff
path: root/src/modules/m_kicknorejoin.cpp
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Fix SetModeParam to use std::string and handle edge cases.Gravatar danieldg2009-04-171-6/+3
| | | | | | | Previously, changing the vaule of a mode could require 3 calls to SetMode and SetModeParam. This also fixes memory leaks caused by the strdup() not always being paired with a free(). git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11307 e03df62e-2008-0410-955e-edbf42e46eb7
* Update all wiki links to point to the new wiki. This was done automatically ↵Gravatar psychon2009-03-151-1/+1
| | | | | | | | | with the following command, only .Makefile.inc got some indent fixups by hand. for file in $(find -type f -and -not -path '*/.svn/*' -and -not -name '*.so') ; do sed -e 's#http://www.inspircd.org/wiki#http://wiki.inspircd.org#' -e 's#http://wiki.inspircd.org/index.php/#http://wiki.inspircd.org/#' -i $file ; done git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11223 e03df62e-2008-0410-955e-edbf42e46eb7
* Update copyrights for 2009.Gravatar w00t2009-01-021-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10932 e03df62e-2008-0410-955e-edbf42e46eb7
* Second attempt at time() -> SI->Time(), now problems with the original were ↵Gravatar w00t2008-11-011-2/+2
| | | | | | | | | fixed. (SI::TIME was not initialised). Thanks Namegduf! (Please test, all, valdebug etc, report odd behaviour/warnings!) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10783 e03df62e-2008-0410-955e-edbf42e46eb7
* Revert earlier time() -> SI->Time() diff for now, this causes problems with ↵Gravatar w00t2008-10-231-2/+2
| | | | | | dns.cpp in mysterious ways.. seemingly a bad pointer there somehow..? git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10695 e03df62e-2008-0410-955e-edbf42e46eb7