aboutsummaryrefslogtreecommitdiff
path: root/src/channels.cpp
Commit message (Expand)AuthorAgeFilesLines
* Hide User#host and User#dhost and use accessors to modify them.•••This removes the need to invalidate the cache after changing a user's hostname. Gravatar Peter Powell2017-10-281-2/+2
* Fix compatibility with the legacy <channels> tag.•••We should only use OperMaxChans if they have the right privilege. Gravatar Peter Powell2016-09-201-1/+1
* Return std::string from Membership::GetAllPrefixChars()Gravatar Attila Molnar2016-08-301-7/+4
* Convert ModeHandler::GetNumParams() to NeedsParam() that returns a boolGravatar Attila Molnar2016-08-291-2/+2
* Add a method which calculates the maximum mask length. (#1171)Gravatar Peter Powell2016-07-221-1/+1
* 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 Gravatar Attila Molnar2016-04-111-5/+13
* Add Channel::WriteNotice()Gravatar Attila Molnar2016-03-051-0/+7
* Convert WriteNumeric() calls to pass the parameters of the numeric as method ...Gravatar Attila Molnar2016-02-251-5/+5
* Return true from Channel::PartUser() if the user was on the channelGravatar Attila Molnar2015-12-281-2/+4
* Invert if in Channel::PartUser()Gravatar Attila Molnar2015-12-281-11/+11
* 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 Gravatar Attila Molnar2015-11-021-66/+0
* Move handling of <options:invitebypassmodes> into core_channelGravatar Attila Molnar2015-11-021-16/+4
* Update another password check to use InspIRCd::TimingSafeCompare.Gravatar Peter Powell2015-10-141-1/+1
* Move Channel::UserList() from core to cmd_namesGravatar Attila Molnar2015-05-161-63/+0
* Move topic and NAMES sending on join from core into core_channelGravatar Attila Molnar2015-05-161-10/+0
* Fix miscalculation of maxlen in Channel::UserList() introduced by the WriteNu...Gravatar Attila Molnar2015-02-271-1/+1
* Verify that the chan in chanlist is in fact the same object as us in Channel:...Gravatar Attila Molnar2015-01-161-1/+1
* Gracefully handle multiple Channel::CheckDestroy() calls on the same object•••Don't add the channel to the cull list more than once Gravatar Attila Molnar2015-01-161-6/+5
* Reduce std::string::substr() usage•••substr() returns a new string while erase() and assign() modify the existing one Gravatar Attila Molnar2015-01-101-2/+2
* Merge insp20Gravatar Attila Molnar2014-10-271-0/+8
|\
| * Reject parameters that begin with a colon in Channel::SetDefaultModes()Gravatar Attila Molnar2014-09-261-0/+5
| * Don't try to set a mode in Channel::SetDefaultModes() if it needs a parameter...•••Thanks to @docwhat for helping to track this down, fixes issue #924 Gravatar Attila Molnar2014-09-261-0/+3
* | Store Membership objects physically in the nodes of Channel::MemberMapGravatar Attila Molnar2014-09-271-4/+4
* | Remove typedef UserMembIter, use Channel::MemberMap::iterator instead•••Remove the now unused UserMembList typedef too Gravatar Attila Molnar2014-07-141-10/+10
* | Kill needless #includes in source filesGravatar Attila Molnar2014-06-141-2/+0
* | Return the newly created Membership object from Channel::ForceJoin()Gravatar Attila Molnar2014-06-101-3/+4
* | Change Channel::KickUser() to accept an iterator, add overload that accepts a...•••Remove srcmemb parameter Gravatar Attila Molnar2014-06-101-3/+3
* | Move pre-kick checks from core to cmd_kick (core_channel)Gravatar Attila Molnar2014-06-101-39/+0
* | Remove needless checks from Invitation::Find()Gravatar Attila Molnar2014-05-061-2/+0
* | Change the OnNamesListItem() hook to return ModResult•••Return MOD_RES_DENY to exclude the user from the NAMES list Gravatar Attila Molnar2014-04-201-3/+4
* | Kill <channels> in favour of <connect:maxchans> and <oper:maxchans>.•••Remove channels/high-join-limit privilege Gravatar Peter Powell2014-04-111-17/+13
* | 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 Gravatar Attila Molnar2014-04-091-6/+1
* | Move checks determining whether a user is allowed to view the NAMES list of a...Gravatar Attila Molnar2014-04-091-6/+0
* | Eliminate usage of has_one in Channel::UserList()Gravatar Attila Molnar2014-04-091-9/+2
* | Merge insp20Gravatar Attila Molnar2014-04-071-1/+2
|\|
| * Fix NAMES list getting truncated on servers having an excessively long server...Gravatar Attila Molnar2014-03-131-1/+2
| * Backport "Refactor Channel::UserList() to use std::string"•••This gets rid of questionable snprintf() usage, reported by @hifi Backported commit: 8a06d54076551387f83a29360478ee6605e241b6 Gravatar Attila Molnar2014-03-131-25/+21
* | Check if Membership::GetPrefixChar() returns 0 before appending it to a string•••Spotted by @barosl Gravatar Attila Molnar2014-03-311-1/+3
* | Change allocation of InspIRCd::chanlist to be physically part of the object c...Gravatar Attila Molnar2014-03-141-4/+4
* | Index Channel::modes and User::modes with the id of the mode instead of its l...Gravatar Attila Molnar2014-02-211-5/+3
* | Add ParamModeBase and ParamMode, change all parameter modes to inherit from P...•••- 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 Gravatar Attila Molnar2014-02-151-29/+6
* | Move GetAllPrefixChars() from Channel to MembershipGravatar Attila Molnar2014-02-141-9/+5
* | Move GetPrefixChar() from Channel to MembershipGravatar Attila Molnar2014-02-141-14/+12
* | Remove some dead codeGravatar Attila Molnar2014-01-311-1/+0
* | Destroy Memberships of a quitting user in QuitUser() instead of in cull()Gravatar Attila Molnar2014-01-251-2/+0
* | Convert InviteBase::invites to an intrusively linked listGravatar Attila Molnar2014-01-241-26/+8
* | Remove classbase inheritance from InvitationGravatar Attila Molnar2014-01-241-2/+0
* | Convert UserChanList to an intrusively linked listGravatar Attila Molnar2014-01-241-3/+3
* | Merge insp20Gravatar Attila Molnar2014-01-211-2/+3
|\|
| * Fix some logically dead code which was found by Coverity.Gravatar Peter Powell2014-01-211-10/+2