201 Commits

Author SHA1 Message Date
InspIRCd Robot
28ea18cfdf Update copyright headers. 2025-01-04 12:08:33 +00:00
Glen Miner
41293a058d Optimized membership lookup for large servers
On our server hosting 150K users we noticed that std::map lookups for user membership were high on the profile. Since there seemed to be no ordered iteration needed we were able to shave a few % off of the profile by changing this to a std::unordered_map
2024-12-19 14:10:08 +00:00
InspIRCd Robot
ae3e2db109 Update copyright headers. 2024-06-07 10:37:56 +01:00
Sadie Powell
3a5870adf0 Improve the inlining of some channel functions. 2023-07-07 09:59:41 +01:00
Sadie Powell
4258d3452a Update KickUser to match PartUser. 2023-07-06 21:56:39 +01:00
Sadie Powell
66f2423a1d Make PartUser inline and add an overload that takes an iterator.
The return value of PartUser is not used 99% of the time so this
allows the compiler to optimise it out.
2023-07-06 21:56:28 +01:00
Sadie Powell
80894752a7 Make JoinUser return a Membership instead of a Channel. 2023-06-22 16:40:05 +01:00
Sadie Powell
d048778f78 Merge branch 'insp3' into master. 2023-01-01 13:19:45 +00:00
InspIRCd Robot
2b810b412a Update copyright headers. 2022-12-30 11:31:28 +00:00
Sadie Powell
5e44188857 More const correctness work. 2022-12-08 10:19:47 +00:00
Sadie Powell
859088dac5 More const correctness. 2022-10-23 14:51:33 +01:00
Sadie Powell
89537ed2ab Fix various cases of the &* being next to the name instead of type. 2022-09-29 12:36:01 +01:00
Sadie Powell
87fe3cae8a Replace GetUserCounter() with GetUsers().size().
This method is legacy from when there was a manual user counter and
isn't much of a length saving over the unsugared version.
2022-08-24 04:52:45 +01:00
Sadie Powell
648f813f8c Switch from NULL to nullptr. 2022-07-22 18:53:21 +01:00
Sadie Powell
fe9107c992 Modernize the syntax of various templates. 2022-06-23 21:22:04 +01:00
Sadie Powell
c31e4c6a97 Add a typedef for a mode rank. 2022-05-17 13:45:18 +01:00
Sadie Powell
414105e409 Add a typedef for the mode status bitset. 2022-03-27 16:09:19 +01:00
Sadie Powell
d79147e7af Abolish the infernal space before accessibility keywords. 2022-01-25 14:02:36 +00:00
Sadie Powell
421e8c8c79 Add the final keyword to all remaining classes that can have it. 2021-12-20 20:19:40 +00:00
Sadie Powell
3ca912ad71 Merge branch 'insp3' into master. 2021-05-11 04:07:45 +01:00
Sadie Powell
b4a174ee9c Fix a bunch of weird indentation and spacing issues. 2021-04-27 16:41:14 +01:00
Sadie Powell
e5b586315b Make the reason parameter to PartUser const. 2021-04-18 04:58:28 +01:00
Sadie Powell
0194f799b9 Merge branch 'insp3' into master. 2021-03-31 15:04:15 +01:00
Sadie Powell
952ee5cc60 Fix various documentation comments. 2021-03-31 10:51:51 +01:00
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
37fbbd840c Add first class support for extbans.
This replaces the previous support which was pretty much a giant
hack and was not synchronised between servers.
2020-05-07 21:41:04 +01:00
Sadie Powell
b755d2a778 Merge branch 'insp3' into master. 2020-05-05 22:03:14 +01:00
InspIRCd Robot
4f9abe96a4 Fixes by misspell-fixer 2020-04-21 00:52:12 -06:00
Sadie Powell
98e4ddfb21 Use C++11 inline initialisation for class members. 2020-02-06 11:25:42 +00:00
InspIRCd Robot
8f62016f16 Update copyright headers. 2020-01-31 12:48:25 +00:00
Sadie Powell
6597fe5d4f Add Channel::WriteRemoteNotice and revert WriteNotice changes.
This is a partial reversion of 687778b72e.

See also: #1749.
2020-01-29 12:00:32 +00:00
InspIRCd Robot
aa692dc103 Update copyright headers. 2020-01-11 22:14:43 +00:00
Peter Powell
687778b72e Allow Channel::WriteNotice send to other servers and status ranks. 2019-11-17 22:17:42 +00:00
Peter Powell
18678c6a22 Add ParamMode::IsParameterSecret and remove special casing of keys. 2019-01-28 17:26:15 +00:00
Peter Powell
0e6b18ff91 Fix warnings from Doxygen. 2018-10-21 19:18:08 +01:00
Peter Powell
58a0a7e014 Implement IRCv3 message tag support.
Co-authored-by: Attila Molnar <attilamolnar@hush.com>
2018-08-13 21:51:11 +01:00
Peter Powell
36040be295 Fix a ton of -Wsign-conversion warnings. 2017-11-17 15:33:01 +00:00
Attila Molnar
2706a993b3 Refactor topic setting logic to go through Channel::SetTopic() in all cases
- Pass topic set time and optionally the setter to SetTopic()
- Don't do anything if the topic is changed by a local user to what it is currently
2016-04-11 15:53:01 +02:00
Attila Molnar
0586ec9baa Add Channel::WriteNotice() 2016-03-05 16:41:24 +01:00
Attila Molnar
e17fcc226b Return true from Channel::PartUser() if the user was on the channel 2015-12-28 17:27:40 +01:00
Attila Molnar
30fc51c6dd Rewrite invite system
- Moved out of core, now lives entirely in core_channel
- Accessible using the provided API after including the appropriate header
- Invites are stored in an extension attached to LocalUser/Channel objects, they no longer need special handling when destroying these objects or when lowering TS
- Expiration of timed invites are implemented using Timers
- When creating a new invite let a non-timed invite override a timed one
2015-11-02 13:28:55 +01:00
Attila Molnar
930fd98e48 Move Channel::UserList() from core to cmd_names 2015-05-16 16:49:37 +02:00
Attila Molnar
8c2cdeaf33 Store Membership objects physically in the nodes of Channel::MemberMap 2014-09-27 18:30:01 +02:00
Attila Molnar
63601e946e Remove typedef UserMembIter, use Channel::MemberMap::iterator instead
Remove the now unused UserMembList typedef too
2014-07-14 16:19:34 +02:00
Attila Molnar
04ece67c3d Rename UserMembList to Channel::MemberMap, switch all code to use it 2014-07-14 16:10:12 +02:00
Attila Molnar
173bc63cb5 Change return type of Channel::GetUsers() to reference from pointer as it is never NULL 2014-07-14 16:04:38 +02:00
Attila Molnar
106c0889b3 Return the newly created Membership object from Channel::ForceJoin() 2014-06-10 17:45:41 +02:00
Attila Molnar
854af2945e Change Channel::KickUser() to accept an iterator, add overload that accepts a User
Remove srcmemb parameter
2014-06-10 17:12:00 +02:00
Attila Molnar
0c476dd0ca Avoid double Membership lookup in Channel::UserList()
The user is always inside if UserList() is called from ForceJoin() and the HasUser() result obtained in the /NAMES handler can be reused
2014-04-09 15:02:10 +02:00