summaryrefslogtreecommitdiff
path: root/src/channels.cpp
AgeCommit message (Collapse)Author
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
2014-01-04Show +i users on a channel to opers having the channels/auspex priv who do ↵Attila Molnar
/NAMES from outside of the chan Discovered by @Cronus89
2013-12-15Make various self contained methods static.Peter Powell
- InspIRCd::IsValidMask - InspIRCd::TimeString
2013-11-12Use WriteNumeric() everywhere we send numerics and include the user's nick ↵Adam
automatically
2013-09-11Move prefix mode specific fields and getters into PrefixModeattilamolnar
Add ModeHandler::IsPrefixMode()
2013-09-11Create a base class for prefix modesattilamolnar
Move Channel::SetPrefix() into Membership
2013-08-22Fix a few problemsattilamolnar
- Fix configuration issue on systems without both GnuTLS and OpenSSL. (@SaberUK) - Do not set Membership::modes in ForceJoin() incorrectly to privs - Fix crash when spanningtree detects a configuration error on load
2013-08-12Clean up a few constructorsattilamolnar
Do not silently correct a zero TS in Channel::Channel(); require callers to supply a valid TS instead
2013-08-10Require privs given on initial join to be in <options:defaultmodes>.Peter Powell
2013-08-04Change the syntax of FOREACH macros to be less dumb.Adam
2013-07-19Replace hardcoded mode letters, part 3attilamolnar
This changes most remaining User::IsModeSet() calls to use ModeReferences for modes that were created by other modules or the core