135 Commits

Author SHA1 Message Date
Sadie Powell
1e1cf527d2 Merge branch 'insp3' into master. 2021-03-05 02:32:35 +00:00
InspIRCd Robot
7b1ab06a95 Update copyright headers. 2021-03-05 02:16:11 +00:00
Sadie Powell
b755d2a778 Merge branch 'insp3' into master. 2020-05-05 22:03:14 +01:00
InspIRCd Robot
44489ddf7e Update copyright headers. 2020-04-24 10:23:47 +01:00
Sadie Powell
bafb721640 Merge branch 'insp3' into master. 2020-04-14 19:57:10 +01:00
Sadie Powell
c506023c5a Fix kicknorejoin not showing the channel name properly in errors.
Closes #1775.
2020-04-14 00:24:45 +01:00
Sadie Powell
4582696afb Merge branch 'insp3' into master. 2020-04-11 14:08:02 +01:00
Sadie Powell
1a800f7b3d Improve storage of module description, flags, and link data. 2020-04-11 13:54:05 +01:00
Sadie Powell
4a6fedd932 Update the module descriptions using mkversion. 2020-04-10 15:36:14 +01:00
Sadie Powell
98e4ddfb21 Use C++11 inline initialisation for class members. 2020-02-06 11:25:42 +00:00
Sadie Powell
1de6f5b4a9 Merge branch 'insp3' into master. 2020-01-17 12:36:09 +00:00
InspIRCd Robot
aa692dc103 Update copyright headers. 2020-01-11 22:14:43 +00:00
Sadie Powell
cd8b456f97 Merge branch 'insp3' into master. 2019-07-16 16:48:18 +01:00
Peter Powell
9433e34b21 Show the mode syntax in ERR_INVALIDMODEPARAM. 2019-06-12 21:52:58 +01:00
Sadie Powell
1d5b18de82 Merge branch 'insp3' into master. 2019-05-15 15:26:55 +01:00
Robby
e59cb85871 Some more text fixes and improvements (#1618). 2019-04-28 22:26:50 +01:00
Sadie Powell
c78ecdf579 Replace the override macro with the override keyword. 2019-01-25 02:52:11 +00:00
Peter Powell
0f7cfd46ef Fix conversion issues by replacing ConvToInt with ConvToNum<T>.
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.
2018-12-12 21:43:24 +00:00
A_D
f020429fd3 Make kicknorejoin respect /INVITE (#1514). 2018-09-23 13:12:05 +01:00
Peter Powell
a69f543be3 Fix a bunch more conflicting/unnamed numerics. 2018-08-14 19:31:26 +01:00
Peter Powell
d5a6054948 Add ERR_INVALIDMODEPARAM for responding to invalid mode params.
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.
2018-01-29 11:52:13 +00:00
Peter Powell
91e0af0fc4 Add the override keyword in places that it is missing.
GCCs warnings for this are much better than Clangs.
2017-11-21 15:51:45 +00:00
Attila Molnar
da29af8cba Convert WriteNumeric() calls to pass the parameters of the numeric as method parameters 2016-02-25 16:12:09 +01:00
Daniel Vassdal
d9de2ec34f m_kicknorejoin: Advertise upper bound. Closes #913 2015-02-22 18:16:02 +01:00
Attila Molnar
9add848772 m_kicknorejoin Store kicked users in a vector 2015-01-23 15:50:18 +01:00
Attila Molnar
c5b8e72f5c m_kicknorejoin Move logic that tracks kicked users into KickRejoinData 2015-01-23 15:46:03 +01:00
Attila Molnar
0556720b55 Add ParamModeBase and ParamMode, change all parameter modes to inherit from 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
2014-02-15 14:38:24 +01:00
Adam
6c7a3ceb6c Use WriteNumeric() everywhere we send numerics and include the user's nick automatically 2013-11-12 06:51:31 -05:00
attilamolnar
992674362c Automatically register ServiceProviders created by modules 2013-09-08 17:11:08 +02:00
attilamolnar
d24619c012 Automatically attach modules to events 2013-08-04 16:08:57 +02:00
Peter Powell
54d10d53c7 Remove $Core and $Mod* comments apart from $ModDep. 2013-07-04 15:51:00 +01:00
attilamolnar
95593de52c Call Channel::SetModeParam() from the mode parser when needed instead of requiring mode handlers to do it 2013-06-13 19:00:01 +02:00
attilamolnar
d9d99cd02d Merge insp20 2013-06-06 01:07:22 +02:00
attilamolnar
0a8b0d317e Remove unused variables, avoid copies where possible, check empty() instead of size() == 0
Most of these were detected by cppcheck
2013-05-16 20:33:46 +02:00
Peter Powell
4ab1c43c1e Tidy up keywords on module methods.
- 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.
2013-05-15 21:41:36 +01:00
attilamolnar
8790551dc1 Merge insp20 2013-04-28 00:32:14 +02:00
attilamolnar
1dfead3b2c m_kicknorejoin Store and compare uuids instead pointers
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
2013-04-16 13:20:24 +02:00
attilamolnar
4b81b4004d m_kicknorejoin Limit time to 30m by default
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)
2013-04-16 13:18:40 +02:00
attilamolnar
e3939559e4 m_kicknorejoin Minor improvements
- Ignore remote users
- Remove expired items in one pass
2013-04-16 13:15:51 +02:00
attilamolnar
988d821807 OnUserPreJoin is a local-only hook, change User* parameter to LocalUser* 2013-04-13 15:34:12 +02:00
attilamolnar
26e7bb0b9a Whitespace and empty destructor removal, minor coding style changes 2013-04-01 21:56:13 +02:00
attilamolnar
1cb05553e2 Change channel name parameter of Module::OnUserPreJoin() and Channel::JoinUser() to std::string from char* 2013-04-01 02:13:43 +02:00
attilamolnar
349106f3f9 Register all commands, modes and extensions using AddService()
AddService() throws an exception if an item cannot be registered, modules no longer need to worry about AddMode() etc. failing
2012-12-02 19:40:17 +01:00
attilamolnar
84a1569cd6 Dynamically determine the size of the eventlist[] passed to Attach()
m_sqlauth was attached to I_OnUserDisconnect but didn't provide a handler for it, remove
2012-12-02 19:40:00 +01:00
attilamolnar
ac7defcd3e Attach to events and register services in init() 2012-12-02 19:39:46 +01:00
attilamolnar
02859be56d Fix more undefined behavior caused by referencing the returned buffer by std::string::c_str() when the object is temporary
See 83c7cc45daf6fb1f8c36f15297a4657e45a34e88
2012-09-30 03:04:07 +02:00
Robby-
46a3904619 Replace copyright headers with headers granting specific authors copyright 2012-04-19 20:58:29 +02:00
danieldg
934a3f296f Fix crash on kick when +J is set, +misc cleanup
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12396 e03df62e-2008-0410-955e-edbf42e46eb7
2010-02-07 23:18:53 +00:00
danieldg
f8ccaed31d Remove VF_COMMON from mode-provider modules (no longer needed due to better CAPAB checking)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12263 e03df62e-2008-0410-955e-edbf42e46eb7
2010-01-15 20:05:13 +00:00
brain
cd712c40e1 ...because every now and again, i have to do a massive commit.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12248 e03df62e-2008-0410-955e-edbf42e46eb7
2010-01-11 03:07:32 +00:00