aboutsummaryrefslogtreecommitdiff
path: root/src/channels.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Implement IRCv3 message tag support.Gravatar Peter Powell2018-08-131-92/+21
| | | | Co-authored-by: Attila Molnar <attilamolnar@hush.com>
* Move checking for +ikl from the core to to core_channel.Gravatar Peter Powell2018-03-311-38/+2
|
* Fix m_chanhistory sending the history notice directly to the user.Gravatar Peter Powell2018-01-031-0/+8
| | | | Closes #1452.
* Merge branch 'insp20' into master.Gravatar Peter Powell2017-12-111-1/+1
|\
| * Add length checking to GetExtBanStatus and m_banexception.Gravatar Peter Powell2017-11-281-1/+1
| | | | | | | | | | 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.
| * Revert "Fix sending the wrong numerics on join when a topic is empty."Gravatar Attila Molnar2015-10-111-1/+1
| | | | | | | | | | | | This reverts commit b0e64b8cea2d721588d92072a8d16fdd99a9c945. The original behavior isn't RFC incompliant, see #1095.
| * Fix sending the wrong numerics on join when a topic is empty.Gravatar Peter Powell2015-08-261-1/+1
| |
* | Extract RFC modes from the core to core_channel and core_user.Gravatar Peter Powell2017-12-101-0/+6
| |
* | Fix action extbans not triggeringGravatar B00mX0r2017-11-261-1/+4
| | | | | | | | This fixes a reversion from ebe5b20
* | Fix a ton of -Wsign-conversion warnings.Gravatar Peter Powell2017-11-171-1/+1
| |
* | Hide User#host and User#dhost and use accessors to modify them.Gravatar Peter Powell2017-10-281-2/+2
| | | | | | | | | | This removes the need to invalidate the cache after changing a user's hostname.
* | Fix compatibility with the legacy <channels> tag.Gravatar Peter Powell2016-09-201-1/+1
| | | | | | | | We should only use OperMaxChans if they have the right privilege.
* | 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 casesGravatar Attila Molnar2016-04-111-5/+13
| | | | | | | | | | - 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
* | 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
| | | | | | | | parameters
* | 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 systemGravatar Attila Molnar2015-11-021-66/+0
| | | | | | | | | | | | | | | | - 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
* | 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 ↵Gravatar Attila Molnar2015-02-271-1/+1
| | | | | | | | WriteNumeric() conversion
* | Verify that the chan in chanlist is in fact the same object as us in ↵Gravatar Attila Molnar2015-01-161-1/+1
| | | | | | | | Channel::CheckDestroy() before proceeding
* | Gracefully handle multiple Channel::CheckDestroy() calls on the same objectGravatar Attila Molnar2015-01-161-6/+5
| | | | | | | | Don't add the channel to the cull list more than once
* | Reduce std::string::substr() usageGravatar Attila Molnar2015-01-101-2/+2
| | | | | | | | substr() returns a new string while erase() and assign() modify the existing one
* | 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 ↵Gravatar Attila Molnar2014-09-261-0/+3
| | | | | | | | | | | | parameter but does not have one Thanks to @docwhat for helping to track this down, fixes issue #924
* | Store Membership objects physically in the nodes of Channel::MemberMapGravatar Attila Molnar2014-09-271-4/+4
| |
* | Remove typedef UserMembIter, use Channel::MemberMap::iterator insteadGravatar Attila Molnar2014-07-141-10/+10
| | | | | | | | Remove the now unused UserMembList typedef too
* | 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 ↵Gravatar Attila Molnar2014-06-101-3/+3
| | | | | | | | | | | | a User Remove srcmemb parameter
* | 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 ModResultGravatar Attila Molnar2014-04-201-3/+4
| | | | | | | | Return MOD_RES_DENY to exclude the user from the NAMES list
* | Kill <channels> in favour of <connect:maxchans> and <oper:maxchans>.Gravatar Peter Powell2014-04-111-17/+13
| | | | | | | | Remove channels/high-join-limit privilege
* | Avoid double Membership lookup in Channel::UserList()Gravatar Attila Molnar2014-04-091-6/+1
| | | | | | | | The user is always inside if UserList() is called from ForceJoin() and the HasUser() result obtained in the /NAMES handler can be reused
* | Move checks determining whether a user is allowed to view the NAMES list of ↵Gravatar Attila Molnar2014-04-091-6/+0
| | | | | | | | a channel from Channel::UserList() to cmd_names
* | 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 ↵Gravatar Attila Molnar2014-03-131-1/+2
| | | | | | | | server name
| * Backport "Refactor Channel::UserList() to use std::string"Gravatar Attila Molnar2014-03-131-25/+21
| | | | | | | | | | | | This gets rid of questionable snprintf() usage, reported by @hifi Backported commit: 8a06d54076551387f83a29360478ee6605e241b6
* | Check if Membership::GetPrefixChar() returns 0 before appending it to a stringGravatar Attila Molnar2014-03-311-1/+3
| | | | | | | | Spotted by @barosl
* | Change allocation of InspIRCd::chanlist to be physically part of the object ↵Gravatar Attila Molnar2014-03-141-4/+4
| | | | | | | | containing it
* | Index Channel::modes and User::modes with the id of the mode instead of its ↵Gravatar Attila Molnar2014-02-211-5/+3
| | | | | | | | letter