summaryrefslogtreecommitdiff
path: root/src/mode.cpp
Commit message (Collapse)AuthorAgeFilesLines
* 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
* That was REALLY dumb. Due to a stupid kludge i did, there was duplicate code ↵Gravatar brain2008-02-141-61/+46
| | | | | | and the new permissions stuff was only working against modes with params! git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8938 e03df62e-2008-0410-955e-edbf42e46eb7
* All working now, with any luckGravatar brain2008-02-141-16/+11
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8936 e03df62e-2008-0410-955e-edbf42e46eb7
* New mode stuff. Note, the framework is now here so that every mode handler ↵Gravatar brain2008-02-141-18/+51
| | | | | | | | | | can state what prefix is required to execute it. For example: You can say that mode +j needs '%' to execute it, so that then only a halfop or above can use mode +j. If you put '@' in this member value, only ops and above can use it. The OnRawMode can return ACR_ALLOW on a case by case basis to totally override this check against the prefix char. If you return ACR_DEFAULT the check goes ahead. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8935 e03df62e-2008-0410-955e-edbf42e46eb7
* More OnRawMode fixGravatar w00t2008-02-141-9/+9
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8932 e03df62e-2008-0410-955e-edbf42e46eb7
* Hopefully fix behaviour of OnRawModeGravatar w00t2008-02-141-2/+5
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8931 e03df62e-2008-0410-955e-edbf42e46eb7
* More to quiet down. This will be a really tidy looking build for most users nowGravatar brain2008-02-101-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8880 e03df62e-2008-0410-955e-edbf42e46eb7
* Move some stuff to usermanager, remove a little header insanity, remove ↵Gravatar w00t2008-02-021-1/+1
| | | | | | trace because it's still less useful than a chocolate fireman. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8790 e03df62e-2008-0410-955e-edbf42e46eb7
* Header update: 2007 -> 2008Gravatar w00t2008-01-101-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8694 e03df62e-2008-0410-955e-edbf42e46eb7
* Hopefully correct implementation of OnRawMode.. can someone pls check this ↵Gravatar w00t2008-01-061-0/+15
| | | | | | for me tomorrow. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8654 e03df62e-2008-0410-955e-edbf42e46eb7
* Partial fix for bug #441Gravatar brain2007-11-031-1/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8479 e03df62e-2008-0410-955e-edbf42e46eb7
* pedantic safeGravatar brain2007-10-231-35/+30
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8316 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove the need for a bunch of the hard coded arrays/hashes by scanning the ↵Gravatar brain2007-10-221-0/+5
| | | | | | src/ dir for tag comments, like in modules git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8307 e03df62e-2008-0410-955e-edbf42e46eb7
* In the grand tradition of huge fucking commits:Gravatar w00t2007-10-151-19/+19
| | | | | | | | - chanrec -> Channel - userrec -> User Enjoy. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8204 e03df62e-2008-0410-955e-edbf42e46eb7
* Support 501 numeric (its different for user modes compared to channel modes) ↵Gravatar brain2007-10-071-1/+1
| | | | | | - thanks anmaster git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8134 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove some fake client stuff, make it use the global recordGravatar w00t2007-08-281-7/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7941 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove more unnecessary header trafficGravatar w00t2007-08-271-3/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7887 e03df62e-2008-0410-955e-edbf42e46eb7