summaryrefslogtreecommitdiff
path: root/src/channels.cpp
AgeCommit message (Collapse)Author
2009-09-13Change match direction of extbans to allow stackingdanieldg
This allows you create stacked bans like: +b m:r:*bot* to mute anyone with bot in their gecos +e S:j:+#staff to allow voices in #staff to use color It also deprecates extban M, which can be implemented using m:R: git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11711 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13Fix GetPrefixChar returning empty if a non-prefix mode was useddanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11706 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13Remove redundant ServerInstance* fieldsdanieldg
It has been impossible to have more than one InspIRCd* object in the same address space for some time now, and this feature was never used. This formalizes class InspIRCd as a singleton object. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11703 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13Use FindMode instead of FindPrefix for OnUserPreJoin privs; makes it ↵danieldg
possible to give +q or +Y on join even without prefix git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11702 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13Simplify ModeHandler constructordanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11701 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13Replace OnAccessCheck with OnPreMode to remove a number of redundant checksdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11700 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13Module API changes to use Membership* where sensibledanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11699 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13Remove double prefix conversion from Channel::RawWriteAllExceptdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11698 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13Membership* changesdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11697 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-05Likewise, convert OnLocalTopicChange to OnPreTopicChange and to be run for ↵w00t
both local and remote changes, for API consistency. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11678 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-05Change OnPostLocalTopicChange to be OnPostTopicChange, invoked for both ↵w00t
remote and local events. Will be needed for some xline trickery. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11677 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02inline Channel::IsModeSetdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11643 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02Rip out VisData in preparation for replacing it with more flexible hooksdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11640 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02ModResult conversion: Change return type of all module functionsdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11634 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02Remove a few unneeded string copies in the PRIVMSG pathdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11606 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02Replace FOREACH_RESULT_MAP with a more readable and flexible ↵danieldg
do_each_hook/while_each_hook macro pair git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11598 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02Add "created" parameter to OnUserJoin, to avoid explicit checks for +Pdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11597 e03df62e-2008-0410-955e-edbf42e46eb7
2009-08-15Partial revert of 1fb8a3f1b120db764375911be9ad8019a807a8ad by dKingston, ↵w00t
(adding RPL_NOTOPICSET). This is *not* defined as a return for JOIN message, and it's a bit annoying too. Keep the define and use it in TOPIC instead of '331' though. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11527 e03df62e-2008-0410-955e-edbf42e46eb7
2009-08-13Merge patch from dKingston for missing TOPIC numeric, also replace the ↵brain
literal 331 with an RPL_* enum value, thanks! git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11510 e03df62e-2008-0410-955e-edbf42e46eb7
2009-08-12Fixes for config readerdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11504 e03df62e-2008-0410-955e-edbf42e46eb7
2009-06-30Check for oper max chans before user max chans, fixes code weirdness and bug ↵w00t
#876. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11422 e03df62e-2008-0410-955e-edbf42e46eb7
2009-05-13Use a FakeUser source for server-sourced commands in spanningtreedanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11376 e03df62e-2008-0410-955e-edbf42e46eb7
2009-04-29Overloading SetMode seems to cause the compiler to interpret "" as a bool ↵danieldg
and not a string. Fixes bug #849 git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11335 e03df62e-2008-0410-955e-edbf42e46eb7
2009-04-24Fix crash from unregistered users joining a channel, discovered by Namegdufdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11328 e03df62e-2008-0410-955e-edbf42e46eb7
2009-04-20Use loopCall to protect OnUserKick rather than the triggerevents hackdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11321 e03df62e-2008-0410-955e-edbf42e46eb7
2009-04-17Fix SetModeParam to use std::string and handle edge cases.danieldg
Previously, changing the vaule of a mode could require 3 calls to SetMode and SetModeParam. This also fixes memory leaks caused by the strdup() not always being paired with a free(). git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11307 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-23Check IsBanned even when the ban list is empty, so that module hooks get ↵danieldg
called. Fixes bug #800, reported by Taros git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11248 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-15Update all wiki links to point to the new wiki. This was done automatically ↵psychon
with the following command, only .Makefile.inc got some indent fixups by hand. for file in $(find -type f -and -not -path '*/.svn/*' -and -not -name '*.so') ; do sed -e 's#http://www.inspircd.org/wiki#http://wiki.inspircd.org#' -e 's#http://wiki.inspircd.org/index.php/#http://wiki.inspircd.org/#' -i $file ; done git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11223 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-14Extban rework: allow exceptions to override bans on joindanieldg
Move all bans that prevent a user from joining the channel to OnCheckBan, then stack their return results to allow an exception to override a ban. This does not make join exceptions override any other exception like mute. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11222 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-14Nuke trailing spacespeavey
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11105 e03df62e-2008-0410-955e-edbf42e46eb7
2009-01-22Small fix: don't set default modes when joining if usercount == 0, set if it ↵w00t
was actually created locally - this is needed due to +P. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10976 e03df62e-2008-0410-955e-edbf42e46eb7
2009-01-09Remove channel::created as its unused and only serves to confuse (see last ↵peavey
commit to m_check). As a bonus saves memory usage :p git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10955 e03df62e-2008-0410-955e-edbf42e46eb7
2009-01-02Update copyrights for 2009.w00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10932 e03df62e-2008-0410-955e-edbf42e46eb7
2008-10-18Add priv channels/high-join-limit.w00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10670 e03df62e-2008-0410-955e-edbf42e46eb7
2008-09-02This string copy is gone now, remove fixme notew00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10376 e03df62e-2008-0410-955e-edbf42e46eb7
2008-08-25Allow Channel::SetTopic with a NULL user record, which sets a blank topic.w00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10270 e03df62e-2008-0410-955e-edbf42e46eb7
2008-08-21match() is no longer a function+no header, now a static method of InspIRCd ↵w00t
class, blah blah blah. Also rip out the 1.2 matcher, as it was slow, and replace it with one adapted from znc, which happens to be a tiny bit faster than 1.1's (and the fastest I've seen so far that works properly) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10212 e03df62e-2008-0410-955e-edbf42e46eb7
2008-08-10Fix RPL_NAMREPLY sometimes fucking upw00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10137 e03df62e-2008-0410-955e-edbf42e46eb7
2008-08-07Implement <options:invitebypassmodes>, optionally circumvent +blk if invited ↵w00t
on join. Based on a patch provided by mixx941, closes bug #589. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10120 e03df62e-2008-0410-955e-edbf42e46eb7
2008-08-05Fix TOPIC to work on propegation againw00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10105 e03df62e-2008-0410-955e-edbf42e46eb7
2008-08-04Add optional 3rd parameter to Channel::SetTopic() which overrides all access ↵om
checks. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10085 e03df62e-2008-0410-955e-edbf42e46eb7
2008-08-04Oops, actually, return 1 to block change, 0 to check it, -1 to allow it ↵w00t
regardless. Update docs in header also. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10083 e03df62e-2008-0410-955e-edbf42e46eb7
2008-08-04Add Channel::SetTopic(User *, std::string &) to set topic on a channel. Use ↵w00t
it in CommandTopic. Also modify OnLocalTopicChange to accept a new return value. (0 == proceed as normal, 1 == don't check anything, -1 == disallow change silently). git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10082 e03df62e-2008-0410-955e-edbf42e46eb7
2008-07-29Remove last vestige of libircdfoo, by changing tag into a single ↵w00t
identifier marking object as requiring compilation into a .o (minor commit) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10076 e03df62e-2008-0410-955e-edbf42e46eb7
2008-07-21Remove duplicated member, kept in classes.. Possible now we have a pointer. ↵w00t
this saves (another) 4 bytes per user. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10064 e03df62e-2008-0410-955e-edbf42e46eb7
2008-07-20Remove custom members for +lk storagew00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10053 e03df62e-2008-0410-955e-edbf42e46eb7
2008-07-20Fixes to some stuff that writes on memory it shouldn't (thanks psychon).w00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10047 e03df62e-2008-0410-955e-edbf42e46eb7
2008-07-16Fix parts being screwed up, thanks psychonw00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10027 e03df62e-2008-0410-955e-edbf42e46eb7
2008-07-13Finish channels.cpp conversion to numerics listw00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10007 e03df62e-2008-0410-955e-edbf42e46eb7
2008-07-13Add include/numerics.h, contains/will contain an enum for numerics. Work in ↵w00t
progress. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10006 e03df62e-2008-0410-955e-edbf42e46eb7