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