833 Commits

Author SHA1 Message Date
Attila Molnar
28dcc1f9e0 Add Numeric::Numeric 2016-02-25 15:25:02 +01:00
Attila Molnar
6bc4db5e92 Do not insert FakeUsers into UserManager::uuidlist
Inserting them causes FindUUID() and FindNick() to return server users which is not what modules want
2015-12-07 10:11:09 +01:00
Attila Molnar
c89cc290fb Move already sent id rollover handling and static LocalUser::already_sent_id into UserManager 2015-11-03 13:13:00 +01:00
Attila Molnar
3ef3047681 Add UserManager::NextAlreadySentId() and convert all code to use it 2015-11-03 13:08:21 +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
8236f2c376 Fix oversights in substr() conversion
Thanks to @StevenVanAcker for reporting and testing this
2015-02-27 01:25:12 +01:00
Attila Molnar
4d4306d8a9 Remove needless checks from User::WriteCommon()/WriteCommonRaw() 2015-01-24 15:02:25 +01:00
Attila Molnar
30bcf4894f Implement User::WriteCommonRaw() using ForEachNeighbor() 2015-01-24 14:55:10 +01:00
Attila Molnar
cf728bd8a3 Implement User::WriteCommonQuit() using ForEachNeighbor() in UserManager 2015-01-24 14:53:03 +01:00
Attila Molnar
662dfa6c18 Add User::ForEachNeighbor() 2015-01-24 14:49:10 +01:00
Attila Molnar
47dda4f615 Reduce std::string::substr() usage
substr() returns a new string while erase() and assign() modify the existing one
2015-01-10 15:16:03 +01:00
Attila Molnar
706b5a5a5b Unset oper-only modes in User::UnOper() in a more sensible way
Get the user mode list from the ModeParser instead of trying all possible mode letters
2014-09-05 15:06:21 +02:00
Attila Molnar
4634151efc Replace irc::modestacker usage with the new ModeParser::Process() 2014-09-03 15:32:02 +02:00
Attila Molnar
cea7a7cffa Do not attempt to detect non-culled users at destruction by looking for their uuid, leave it to Extensible
This does not take uuid/sid reuse into consideration and Extensible implements this detection already in a proper way
2014-07-28 14:51:39 +02:00
Attila Molnar
662364f855 Allow fast sid reuse by erasing fake users from UserManager::uuidlist when the netsplit is handled, not in cull() 2014-07-28 14:50:28 +02:00
Attila Molnar
f62654a685 Merge insp20 2014-07-25 12:05:40 +02:00
Attila Molnar
cec9265bdb Erase local users from UserManager::local_list in QuitUser() 2014-07-19 14:16:15 +02:00
Attila Molnar
046da7da9b Move typedef ClassVector to ServerConfig::ClassVector 2014-07-16 12:30:05 +02:00
Attila Molnar
46c97a8db7 Rename UserChanList to User::ChanList, remove UCListIter 2014-07-14 16:24:59 +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
e827ec50d8 Get rid of irc::strings (assign()) in User::ChangeNick() 2014-07-03 12:32:21 +02:00
Attila Molnar
43063e15a2 Deduplicate code in User::ChangeNick() 2014-07-03 12:30:54 +02:00
Attila Molnar
393cc8f9d6 Remove now needless User::ForceNickChange()
Change call sites to call ChangeNick()
2014-07-03 12:27:24 +02:00
Attila Molnar
bee8625fbe Move calling the OnUserPreNick() hook and the restrictbannedusers check from core to cmd_nick (core_user) 2014-07-03 12:21:00 +02:00
Attila Molnar
02032ae282 Check Q-Lines on nick change in core_xline 2014-06-20 16:34:03 +02:00
Attila Molnar
0e98ca83b5 Reject nickname case changes too when enforcing <security:restrictbannedusers> 2014-06-20 16:29:40 +02:00
Attila Molnar
1442193c79 Change the type of the user parameter in the OnUserPreNick() hook from User to LocalUser
No remote users were passed to this hook before.

Remove needless IS_LOCAL() checks.
2014-06-20 16:20:19 +02:00
Attila Molnar
3323226c38 Increment serverstats::Collisions when a collision is handled, not when a module denies a nick change 2014-06-20 16:04:21 +02:00
Attila Molnar
82435b6fa8 Kill needless #includes in source files 2014-06-14 15:30:14 +02:00
Attila Molnar
5b1ee304b5 Change allocation of InspIRCd::Parser to be physically part of the object containing it 2014-06-13 15:45:55 +02:00
Attila Molnar
467b276d9d Change allocation of InspIRCd::BanCache to be physically part of the object containing it 2014-06-13 15:27:40 +02:00
Attila Molnar
caa0c27a5a Pull in bancache.h from inspircd.h 2014-06-13 15:23:39 +02:00
Attila Molnar
12027601cf Change allocation of InspIRCd::stats to be physically part of the object containing it
While at it, remove "stats" from all field names
2014-06-13 15:03:56 +02:00
satmd
8f7cdd5b61 Fix harmless loop off-by-ones found by Moonlightning 2014-06-07 13:12:04 +02:00
Peter Powell
e3bcf95ee9 Prefix all definitions in config.h to avoid potential collisions. 2014-05-23 14:13:51 +02:00
Peter Powell
c511bb56f5 Kill <channels> in favour of <connect:maxchans> and <oper:maxchans>.
Remove channels/high-join-limit privilege
2014-04-11 16:14:10 +02:00
Attila Molnar
10bae31483 Remove unused User::WriteCommonExcept()
WriteCommonRaw(msg, false) has similiar functionality with a std::string parameter
2014-04-02 12:52:20 +02:00
Attila Molnar
2465f88a58 Move User::SendAll() into core_privmsg
This functionality is only used by the PRIVMSG and NOTICE handlers
2014-04-02 12:50:04 +02:00
Attila Molnar
a6e68c0d34 Remove User::WriteTo() functions; use User::WriteFrom() instead
The removed functions were rarely used and all they did was to call User::WriteFrom() with swapped arguments. On call sites, WriteTo() hardly offers any readability improvement over WriteFrom().
2014-04-02 12:44:12 +02:00
Attila Molnar
8f31b0cf2a Change storage of UserManager::all_opers to be a vector 2014-03-25 11:03:29 +01:00
Attila Molnar
d60103cada Rewrite clone counting to use one map instead of two 2014-03-17 11:05:09 +01:00
Attila Molnar
ea590a5d80 Change allocation of UserManager::clientlist to be physically part of the object containing it 2014-03-15 15:29:25 +01:00
Attila Molnar
adb26a4e88 Change allocation of UserManager::uuidlist to be physically part of the object containing it 2014-03-14 13:04:10 +01:00
Peter Powell
f2db4b743f Make the maximum hostname length configurable in the config. 2014-03-08 13:01:09 +01:00
Attila Molnar
b1173ca66a Update nick timestamps in User::ChangeNick(), pass the new TS in a parameter 2014-03-03 15:07:17 +01:00
Attila Molnar
a5ca8b892c Remove REG_ALL checks from User::SharesChannelWith()
These checks are never true currently and even if one or both users are unregistered proceeding is harmless
2014-02-27 17:16:48 +01:00
Attila Molnar
7ffef79f97 Index Channel::modes and User::modes with the id of the mode instead of its letter 2014-02-21 15:11:24 +01:00
Attila Molnar
efe77ba63b Change all socketengine methods to be static 2014-02-08 23:01:44 +01:00
Peter Powell
db0e78c5d2 Fix various cases of UUID exposure.
- Introduce WriteCommand which sends * when the user has not registered.
- Switch a ton of code to use WriteCommand instead of WriteServ.
- Convert WriteNotice to be a wrapper around WriteCommand.
- Only send * when NICK has not been sent instead of before registration.
2014-02-06 23:10:01 +01:00