summaryrefslogtreecommitdiff
path: root/src/mode.cpp
AgeCommit message (Collapse)Author
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-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-13Membership* changesdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11697 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02Change SAMODE to source from the acting user, not the serverdanieldg
This is a merge of the OOMODE command into SAMODE. This fixes SAMODE not working because of mode merging. An additional access check for umode changes is added for this command. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11647 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 "servermode" parameter, replace with IS_FAKE() which is more reliabledanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11633 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02Add Module* creator to Command and ModeHandlerdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11631 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02Valgrind cleanup: deallocate RFC modes, clientlist, and uuidlistdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11614 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02Use CheckTimeStamp to merge modes on netburstdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11596 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02Rework mode parser into slightly smaller chunksdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11594 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02Replace std::deque with std::vector in spanningtree and related modulesdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11593 e03df62e-2008-0410-955e-edbf42e46eb7
2009-06-01Makefile updates: clean up command linesdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11395 e03df62e-2008-0410-955e-edbf42e46eb7
2009-05-13Show correct server source to users on FTOPIC and FMODEdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11380 e03df62e-2008-0410-955e-edbf42e46eb7
2009-04-18Use server source for RemoveMode, fixes bug #838danieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11316 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-13Follow-up fix to r11081. Escalate minimum privileges from '%' to '@' if ↵peavey
halfops are disabled by configuration. Possibly TODO: better handling of minimum privs after RC freeze is over. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11212 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-09Correctly fill LastParseParams on servermode. Fixes bug 763, thanks Ankitdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11187 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-08m_override: fix messages on multi-mode changesdanieldg
This fixes bug 664 git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11186 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-07Include explicit parameter list in ProtocolInterface::SendModedanieldg
Also leave the strings split into deque, there's no need to pack it into a string just to unpack it during the translate. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11181 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-06Construct explicit parameter type list for MODE parametersdanieldg
Previously, we used TR_SPACENICKLIST on the parameters. This worked only because usually, if anything in the list parsed as a nick, then it was a nick. However, some modes like +k and +g allow free-form text, which could also resolve as a nick. Add extra parameters to allow modes to specify their TranslateType, defaulting to TR_TEXT. This fixes bug #757, found by Taros git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11180 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-11Remove/Add cmode h according to <option:allowhalfop>. Fixes bug #715 ↵peavey
reported by Strawberry. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11081 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-27Add user/channel mode synchronisation detection to CAPAB - link will now ↵w00t
drop if modes differ in some way (one side requires param, other doesn't, etc). Same for user modes. This will not affect services. Side effect: Modes::ChanModes() -> Modes::GiveModeList(ModeMasks), mode list is formatted identically for both MASK_CHANNEL and MASK_USER. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10733 e03df62e-2008-0410-955e-edbf42e46eb7
2008-10-25Missed one, w00t :)aquanight
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10714 e03df62e-2008-0410-955e-edbf42e46eb7
2008-10-25Fix <disabled:umodes> interfering with /unloadmodule m_implementing_a_umode, ↵w00t
aquanight, you didn't look quite far enough into this - the problem was m_cloaking (e.g.) returning MODEACTION_DENY if src != dest, which was very very oooold behaviour. Seems to work fine now. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10713 e03df62e-2008-0410-955e-edbf42e46eb7
2008-10-18Tie settings in mode and whowas to privs.w00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10675 e03df62e-2008-0410-955e-edbf42e46eb7
2008-08-31Move all the parameters around AGAIN. See docs shortlybrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10364 e03df62e-2008-0410-955e-edbf42e46eb7
2008-08-17Add OnParameterMissing to modehandler, called when the mode handler should ↵brain
have a parameter, but the parser found none git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10149 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-29Move umode_n to umode_s, second half of last commitw00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10075 e03df62e-2008-0410-955e-edbf42e46eb7
2008-07-29After discussions and thought, move umode +n to +s. This increases ↵w00t
cross-ircd compat (both charybdis and unreal use +s for snomasks, others might in the future). This also decreases complexity for new users, and removes the redundancy. This means that just +s +cC for example will be required to view connects. (files to be renamed in next commit to not confuse svn). git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10074 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-18Implement <disabled:usermodes> and <disabled:chanmodes>.aquanight
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10032 e03df62e-2008-0410-955e-edbf42e46eb7
2008-07-14More broken compile stuffw00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10016 e03df62e-2008-0410-955e-edbf42e46eb7
2008-07-13Convertage.w00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10010 e03df62e-2008-0410-955e-edbf42e46eb7
2008-07-12Allow opers to view modelists regardless of <security:hidemodelists>w00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9995 e03df62e-2008-0410-955e-edbf42e46eb7
2008-07-12Make m_gecosban work. We can't make assumptions about how an extban banmask ↵w00t
must look, as they won't necessarily be a usermask type affair. :( git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9991 e03df62e-2008-0410-955e-edbf42e46eb7
2008-05-25First phase of conversion to dynamic limits on all the lengths, configured ↵brain
via the <limits> tag (the tag isnt there yet, these all just run on defaults in the class constructor) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9802 e03df62e-2008-0410-955e-edbf42e46eb7
2008-05-19Convert channel::name to std::string, this was a beastie!brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9770 e03df62e-2008-0410-955e-edbf42e46eb7
2008-05-18Make User:: nick/ident/dhost/fullname and some other things std::string ↵aquanight
instead of char*/char[] (MODULES DO NOT COMPILE) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9748 e03df62e-2008-0410-955e-edbf42e46eb7
2008-05-04Conversion of command handler params from "const char* const* parameters, ↵brain
int pcnt" to "const std::vector<std::string>& parameters". All of core is converted, but cant test it till the modules are converted. IMPORTANT: The mode parser public calls have had to be tweaked a bit to also use the string vector. Note that this makes a LOT of our core a bit messy and paves the way to convert a lot of stuff from the mess of .c_str() calls to using std::string params directly. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9608 e03df62e-2008-0410-955e-edbf42e46eb7
2008-05-02Optimize MODE #chan b etc, avoid a 256 byte memset for duplicate mode checksbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9601 e03df62e-2008-0410-955e-edbf42e46eb7
2008-05-01Simple user/channel mode patchbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9596 e03df62e-2008-0410-955e-edbf42e46eb7
2008-04-21Merge in large patchset from GreenReaper, useful fixes for freeing a ton of ↵brain
different things on shutdown for tidyness, and a few stack corruption fixes in the mode handler git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9565 e03df62e-2008-0410-955e-edbf42e46eb7
2008-04-13Only restrict set with <class:usermodes/chanmodes>, not unsetbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9494 e03df62e-2008-0410-955e-edbf42e46eb7
2008-04-05Fix a cosmetic issue: 'oper type does not have access'w00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9359 e03df62e-2008-0410-955e-edbf42e46eb7
2008-04-04The start of extended bans infrastructure: syntax is e.g. +b n:w00tdiff@*, ↵w00t
bans of any type can be applied and checked against, but there's more to come with this. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9337 e03df62e-2008-0410-955e-edbf42e46eb7