summaryrefslogtreecommitdiff
path: root/src/channels.cpp
AgeCommit message (Collapse)Author
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-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
2014-02-14Move GetAllPrefixChars() from Channel to MembershipAttila Molnar
2014-02-14Move GetPrefixChar() from Channel to MembershipAttila Molnar
2014-01-31Remove some dead codeAttila Molnar
2014-01-25Destroy Memberships of a quitting user in QuitUser() instead of in cull()Attila Molnar
2014-01-24Convert InviteBase::invites to an intrusively linked listAttila Molnar
2014-01-24Remove classbase inheritance from InvitationAttila Molnar
2014-01-24Convert UserChanList to an intrusively linked listAttila Molnar
2014-01-21Merge insp20Attila Molnar
2014-01-21Fix some logically dead code which was found by Coverity.Peter Powell