summaryrefslogtreecommitdiff
path: root/src/mode.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Properly spacify opertypes in error messages. Patch by dKingstonGravatar special2009-09-141-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/branches/1_2_stable@11725 e03df62e-2008-0410-955e-edbf42e46eb7
* Makefile updates: clean up command linesGravatar danieldg2009-06-011-3/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11395 e03df62e-2008-0410-955e-edbf42e46eb7
* Show correct server source to users on FTOPIC and FMODEGravatar danieldg2009-05-131-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11380 e03df62e-2008-0410-955e-edbf42e46eb7
* Use server source for RemoveMode, fixes bug #838Gravatar danieldg2009-04-181-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11316 e03df62e-2008-0410-955e-edbf42e46eb7
* Update all wiki links to point to the new wiki. This was done automatically ↵Gravatar psychon2009-03-151-1/+1
| | | | | | | | | 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
* Follow-up fix to r11081. Escalate minimum privileges from '%' to '@' if ↵Gravatar peavey2009-03-131-2/+4
| | | | | | 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
* Correctly fill LastParseParams on servermode. Fixes bug 763, thanks AnkitGravatar danieldg2009-03-091-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11187 e03df62e-2008-0410-955e-edbf42e46eb7
* m_override: fix messages on multi-mode changesGravatar danieldg2009-03-081-0/+3
| | | | | | This fixes bug 664 git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11186 e03df62e-2008-0410-955e-edbf42e46eb7
* Include explicit parameter list in ProtocolInterface::SendModeGravatar danieldg2009-03-071-5/+8
| | | | | | | 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
* Construct explicit parameter type list for MODE parametersGravatar danieldg2009-03-061-4/+12
| | | | | | | | | | | | 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
* Remove/Add cmode h according to <option:allowhalfop>. Fixes bug #715 ↵Gravatar peavey2009-02-111-21/+8
| | | | | | reported by Strawberry. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11081 e03df62e-2008-0410-955e-edbf42e46eb7
* Update copyrights for 2009.Gravatar w00t2009-01-021-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10932 e03df62e-2008-0410-955e-edbf42e46eb7
* Add user/channel mode synchronisation detection to CAPAB - link will now ↵Gravatar w00t2008-10-271-2/+2
| | | | | | | | | | 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
* Missed one, w00t :)Gravatar aquanight2008-10-251-4/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10714 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix <disabled:umodes> interfering with /unloadmodule m_implementing_a_umode, ↵Gravatar w00t2008-10-251-2/+2
| | | | | | 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
* Tie settings in mode and whowas to privs.Gravatar w00t2008-10-181-2/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10675 e03df62e-2008-0410-955e-edbf42e46eb7
* Move all the parameters around AGAIN. See docs shortlyGravatar brain2008-08-311-0/+5
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10364 e03df62e-2008-0410-955e-edbf42e46eb7
* Add OnParameterMissing to modehandler, called when the mode handler should ↵Gravatar brain2008-08-171-0/+5
| | | | | | have a parameter, but the parser found none git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10149 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove last vestige of libircdfoo, by changing tag into a single ↵Gravatar w00t2008-07-291-1/+1
| | | | | | 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
* Move umode_n to umode_s, second half of last commitGravatar w00t2008-07-291-2/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10075 e03df62e-2008-0410-955e-edbf42e46eb7
* After discussions and thought, move umode +n to +s. This increases ↵Gravatar w00t2008-07-291-4/+1
| | | | | | 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
* Fixes to some stuff that writes on memory it shouldn't (thanks psychon).Gravatar w00t2008-07-201-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10047 e03df62e-2008-0410-955e-edbf42e46eb7
* Implement <disabled:usermodes> and <disabled:chanmodes>.Gravatar aquanight2008-07-181-0/+11
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10032 e03df62e-2008-0410-955e-edbf42e46eb7
* More broken compile stuffGravatar w00t2008-07-141-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10016 e03df62e-2008-0410-955e-edbf42e46eb7
* Convertage.Gravatar w00t2008-07-131-14/+14
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10010 e03df62e-2008-0410-955e-edbf42e46eb7
* Allow opers to view modelists regardless of <security:hidemodelists>Gravatar w00t2008-07-121-4/+7
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9995 e03df62e-2008-0410-955e-edbf42e46eb7
* Make m_gecosban work. We can't make assumptions about how an extban banmask ↵Gravatar w00t2008-07-121-0/+3
| | | | | | 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
* First phase of conversion to dynamic limits on all the lengths, configured ↵Gravatar brain2008-05-251-1/+1
| | | | | | | | | 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
* Convert channel::name to std::string, this was a beastie!Gravatar brain2008-05-191-7/+7
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9770 e03df62e-2008-0410-955e-edbf42e46eb7
* Make User:: nick/ident/dhost/fullname and some other things std::string ↵Gravatar aquanight2008-05-181-20/+20
| | | | | | instead of char*/char[] (MODULES DO NOT COMPILE) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9748 e03df62e-2008-0410-955e-edbf42e46eb7
* Conversion of command handler params from "const char* const* parameters, ↵Gravatar brain2008-05-041-14/+18
| | | | | | | | | | 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
* Optimize MODE #chan b etc, avoid a 256 byte memset for duplicate mode checksGravatar brain2008-05-021-5/+7
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9601 e03df62e-2008-0410-955e-edbf42e46eb7
* Simple user/channel mode patchGravatar brain2008-05-011-0/+65
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9596 e03df62e-2008-0410-955e-edbf42e46eb7
* Merge in large patchset from GreenReaper, useful fixes for freeing a ton of ↵Gravatar brain2008-04-211-2/+1
| | | | | | 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
* Only restrict set with <class:usermodes/chanmodes>, not unsetGravatar brain2008-04-131-5/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9494 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix a cosmetic issue: 'oper type does not have access'Gravatar w00t2008-04-051-6/+17
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9359 e03df62e-2008-0410-955e-edbf42e46eb7
* The start of extended bans infrastructure: syntax is e.g. +b n:w00tdiff@*, ↵Gravatar w00t2008-04-041-3/+3
| | | | | | 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
* Fixes for bug #493, tidyups to clearing of channel modes on losing FJOIN. ↵Gravatar brain2008-04-021-6/+23
| | | | | | Module unloads may also be tidied at a future date but it means reordering some loops in mode.cpp. See around the comment added. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9283 e03df62e-2008-0410-955e-edbf42e46eb7
* Add an optional bool to ModeParser::ModeString() to not give the nickname n ↵Gravatar brain2008-04-011-4/+10
| | | | | | times on the end of the string. This can be used for w00ts funky stuff. :-) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9242 e03df62e-2008-0410-955e-edbf42e46eb7
* Add ability to control what opertypes can set what operonly user/chan modes. ↵Gravatar aquanight2008-03-231-3/+6
| | | | | | This works the same way as commands, in that modes allowed by classes are added together, and * allows all. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9176 e03df62e-2008-0410-955e-edbf42e46eb7
* Wheeee for HUGE commits. Convert all numerics to WriteNumeric so that ↵Gravatar brain2008-03-221-13/+13
| | | | | | OnNumeric can capture them. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9175 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix for bug #466 reported by JohnGravatar brain2008-02-261-2/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9042 e03df62e-2008-0410-955e-edbf42e46eb7
* Convert remaining InspIRCd::Log() calls to new logging systemGravatar aquanight2008-02-221-3/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9001 e03df62e-2008-0410-955e-edbf42e46eb7
* Wheee, mass commit! this adds const stafety, throwing a compile error if ↵Gravatar brain2008-02-201-1/+1
| | | | | | | | | anyone does: "parameters[n] = blahvar;" in a command handler etc. where they REALLY SHOULD NOT fuck with the value and should copy the pointer. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8971 e03df62e-2008-0410-955e-edbf42e46eb7
* Someone please help me fix the warnings in modules caused by this change. ↵Gravatar brain2008-02-181-8/+8
| | | | | | All mode handler OnMode events, ModeWatcher::BeforeMode/AfterMode, plus OnRawMode now have a bool servermode parameter git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8964 e03df62e-2008-0410-955e-edbf42e46eb7
* Change string for Om <3Gravatar brain2008-02-141-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8943 e03df62e-2008-0410-955e-edbf42e46eb7
* Make AC_OTHERMODE OnAccessCheck call work again.Gravatar brain2008-02-141-1/+4
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8942 e03df62e-2008-0410-955e-edbf42e46eb7
* If the mode defined by the handler is not '\0', but the handler for itGravatar brain2008-02-141-17/+23
| | | | | | | | | cannot be found, they probably dont have the right module loaded to implement the prefix they want to compare the mode against, e.g. '&' for m_chanprotect. Revert to checking against the minimum core prefix, '%'. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8941 e03df62e-2008-0410-955e-edbf42e46eb7
* Reword the failure message to read a little betterGravatar brain2008-02-141-2/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8940 e03df62e-2008-0410-955e-edbf42e46eb7
* Duh, wasnt working when the user had NO prefixes at all!Gravatar brain2008-02-141-10/+9
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8939 e03df62e-2008-0410-955e-edbf42e46eb7