summaryrefslogtreecommitdiff
path: root/src/channels.cpp
AgeCommit message (Collapse)Author
2019-01-28Add ParamMode::IsParameterSecret and remove special casing of keys.Peter Powell
2018-12-12Fix conversion issues by replacing ConvToInt with ConvToNum<T>.Peter Powell
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-12Reject setting modes which are null or not registered.Peter Powell
2018-08-13Implement IRCv3 message tag support.Peter Powell
Co-authored-by: Attila Molnar <attilamolnar@hush.com>
2018-03-31Move checking for +ikl from the core to to core_channel.Peter Powell
2018-01-03Fix m_chanhistory sending the history notice directly to the user.Peter Powell
Closes #1452.
2017-12-11Merge branch 'insp20' into master.Peter Powell
2017-12-10Extract RFC modes from the core to core_channel and core_user.Peter Powell
2017-11-28Add length checking to GetExtBanStatus and m_banexception.Peter Powell
As far as I can tell this is not a problem as all ban masks are canonicalised but its better to be safe than sorry.
2017-11-26Fix action extbans not triggeringB00mX0r
This fixes a reversion from ebe5b20
2017-11-17Fix a ton of -Wsign-conversion warnings.Peter Powell
2017-10-28Hide User#host and User#dhost and use accessors to modify them.Peter Powell
This removes the need to invalidate the cache after changing a user's hostname.
2016-09-20Fix compatibility with the legacy <channels> tag.Peter Powell
We should only use OperMaxChans if they have the right privilege.
2016-08-30Return std::string from Membership::GetAllPrefixChars()Attila Molnar
2016-08-29Convert ModeHandler::GetNumParams() to NeedsParam() that returns a boolAttila Molnar
2016-07-22Add a method which calculates the maximum mask length. (#1171)Peter Powell
2016-04-11Refactor topic setting logic to go through Channel::SetTopic() in all casesAttila Molnar
- 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-03-05Add Channel::WriteNotice()Attila Molnar
2016-02-25Convert WriteNumeric() calls to pass the parameters of the numeric as method ↵Attila Molnar
parameters
2015-12-28Return true from Channel::PartUser() if the user was on the channelAttila Molnar
2015-12-28Invert if in Channel::PartUser()Attila Molnar
2015-11-02Rewrite invite systemAttila Molnar
- 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-02Move handling of <options:invitebypassmodes> into core_channelAttila Molnar
2015-10-14Update another password check to use InspIRCd::TimingSafeCompare.Peter Powell
2015-10-11Revert "Fix sending the wrong numerics on join when a topic is empty."Attila Molnar
This reverts commit b0e64b8cea2d721588d92072a8d16fdd99a9c945. The original behavior isn't RFC incompliant, see #1095.
2015-08-26Fix sending the wrong numerics on join when a topic is empty.Peter Powell
2015-05-16Move Channel::UserList() from core to cmd_namesAttila Molnar
2015-05-16Move topic and NAMES sending on join from core into core_channelAttila Molnar
2015-02-27Fix miscalculation of maxlen in Channel::UserList() introduced by the ↵Attila Molnar
WriteNumeric() conversion
2015-01-16Verify that the chan in chanlist is in fact the same object as us in ↵Attila Molnar
Channel::CheckDestroy() before proceeding
2015-01-16Gracefully handle multiple Channel::CheckDestroy() calls on the same objectAttila Molnar
Don't add the channel to the cull list more than once
2015-01-10Reduce std::string::substr() usageAttila Molnar
substr() returns a new string while erase() and assign() modify the existing one
2014-10-27Merge insp20Attila Molnar
2014-09-27Store Membership objects physically in the nodes of Channel::MemberMapAttila Molnar
2014-09-26Reject parameters that begin with a colon in Channel::SetDefaultModes()Attila Molnar
2014-09-26Don't try to set a mode in Channel::SetDefaultModes() if it needs a ↵Attila Molnar
parameter but does not have one Thanks to @docwhat for helping to track this down, fixes issue #924
2014-07-14Remove typedef UserMembIter, use Channel::MemberMap::iterator insteadAttila Molnar
Remove the now unused UserMembList typedef too
2014-06-14Kill needless #includes in source filesAttila Molnar
2014-06-10Return the newly created Membership object from Channel::ForceJoin()Attila Molnar
2014-06-10Change Channel::KickUser() to accept an iterator, add overload that accepts ↵Attila Molnar
a User Remove srcmemb parameter
2014-06-10Move pre-kick checks from core to cmd_kick (core_channel)Attila Molnar
2014-05-06Remove needless checks from Invitation::Find()Attila Molnar
2014-04-20Change the OnNamesListItem() hook to return ModResultAttila Molnar
Return MOD_RES_DENY to exclude the user from the NAMES list
2014-04-11Kill <channels> in favour of <connect:maxchans> and <oper:maxchans>.Peter Powell
Remove channels/high-join-limit privilege
2014-04-09Avoid double Membership lookup in Channel::UserList()Attila Molnar
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-09Move checks determining whether a user is allowed to view the NAMES list of ↵Attila Molnar
a channel from Channel::UserList() to cmd_names
2014-04-09Eliminate usage of has_one in Channel::UserList()Attila Molnar
2014-04-07Merge insp20Attila Molnar
2014-03-31Check if Membership::GetPrefixChar() returns 0 before appending it to a stringAttila Molnar
Spotted by @barosl
2014-03-14Change allocation of InspIRCd::chanlist to be physically part of the object ↵Attila Molnar
containing it