summaryrefslogtreecommitdiff
path: root/src/channels.cpp
AgeCommit message (Collapse)Author
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
2014-03-13Fix NAMES list getting truncated on servers having an excessively long ↵Attila Molnar
server name
2014-03-13Backport "Refactor Channel::UserList() to use std::string"Attila Molnar
This gets rid of questionable snprintf() usage, reported by @hifi Backported commit: 8a06d54076551387f83a29360478ee6605e241b6
2014-02-21Index Channel::modes and User::modes with the id of the mode instead of its ↵Attila Molnar
letter
2014-02-15Add ParamModeBase and ParamMode, change all parameter modes to inherit from ↵Attila Molnar
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