summaryrefslogtreecommitdiff
path: root/src/mode.cpp
Commit message (Expand)AuthorAgeFilesLines
...
* Move new listmode check deeper into the mode parser so that it doesnt generat...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6853 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-05-011-8/+10
* Fix one issue, add another feature: When sending MODE +beI, weed out duplicat...•••Allow configuration of which listmodes you want to deny to below halfops. For example <options hidemodes="eI">. This is because blocking +b can break mirc, blocking +eI usually wont break it so severely. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6852 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-04-301-1/+17
* Add support for hiding listmode lists such as +beI from unprivileged users.•••See bug #258 git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6849 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-04-271-0/+6
* Change the constructor of ModeParser, make it just a tiny bit prettier.•••Rather than calling AddMode like 25 times, put them in a nice looking array and call it in a loop, doesnt look as craqy (although its exactly the same thing with makeup on) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6555 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-02-091-25/+29
* Better way even than suggested.•••We need one counter, nonlistmodes_found, and start with it at 0. In the while loop, if we find any modes that arent of list mode type we inc the counter, and if the counter is zero after the end of the loop, we can just return (we processed everything already and nothing is left) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6401 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-01-201-0/+7
* Crusade to remove debug from stable and tested parts of the core and base mod...•••Most of the code here being de-noised hasnt had a crash or bug in it for many months, if not a year so the debug output is useless noise in the logfile when trying to trace a bug in a REAL problem area. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6356 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-01-151-22/+0
* Make this use true and false, not MODEACTION_DENY•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6349 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-01-151-2/+2
* Fix the code that nobody tested :p•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6331 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-01-141-4/+6
* And take the return out again to stop w00t throwing a tantrum•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6330 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar om2007-01-141-2/+0
* Add return statement at the end of the special-case block for listing listmodes.•••Make ModeWatchers get called (with an empty parameter and adding = true) if their mode is a listmode and it gets listed git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6329 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar om2007-01-141-1/+18
* Fix this so that if the beforemode clears the parameter, and it was supposed ...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6327 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-01-141-0/+7
* Fix BeforeMode to have the parameter available, if there are enough parameter...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6326 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-01-141-6/+13
* Tweaks to mode parser•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6265 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-01-081-2/+4
* Extra check so that we dont get -O-s when doing:•••MODE #chan +Osnt MODE #chan -O+n-s (the +n would get dropped, but the - and the s get put in the mode sequence) To fix, we store the last *successful* state change, as well as the last attempted state change. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6235 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-01-061-1/+8
* Fix desync with halfop and voice when opped (this happens because we were ORi...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6232 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-01-061-0/+5
* Fix lusers breakage introduced by latest set of optimizations•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6219 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-01-031-0/+5
* Add counter system for umodes to get rid of some O(n)•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6163 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-12-291-1/+6
* Hash rehashing change•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6080 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-12-231-2/+2
* Reduce logging caused by mode changes•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6060 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-12-221-4/+0
* Avoid no such nick on non oper attempting to view modes of a user.•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6047 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2006-12-181-0/+1
* Jesus, look who's the commit whore today. More header updates, and removal of...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5996 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2006-12-151-9/+4
* Refactor userrec::chans.•••Old way: A vector of ucrec, MAXCHANS in size by default populated by NULLS, so you have to scan the vector to find an empty slot when joining a user, parting a user etc New way: std::map<chanrec*, char> (the char holds their basic core permissions on the channel [voice, halfop, op]) This increases speed a ton, and removes some wtf-age. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5986 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-12-141-44/+38
* LOL INFINITE LOOPS IN IRCD ARE ROX•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5834 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2006-12-031-0/+3
* That patch (TM) of controversy, plus a minor cleanup•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5830 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2006-12-021-7/+13
* Disallow mode prefix # since it will mess up /whois and /privmsg•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5786 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar peavey2006-11-221-1/+2
* Don't allow a non-oper to view another users modes. This slightly tweaks the ...•••Also, remove the system from 1.0 whereby an oper CAN change a non-opers modes (except +o) because all this did was confuse services packages. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5748 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-11-151-5/+17
* Show chanrec::age in MODE #chan, not the deprecated chanrec::created•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5717 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-11-121-1/+1
* * Fix removal of user modes when unloading the mode letter (this actually wor...•••* Fix m_stripcolor channel mode +S (was unsettable as it had some user mode checks in it) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5577 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-10-281-7/+1
* /me thwaps special for not reading comments :p•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5445 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-10-061-1/+1
* Extra safety checking in ModeSet just to ensure we cant be passed a null pointer•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5411 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-10-041-0/+3
* Add an extra debug message and change two calls of GetModeType to GetModeChar...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5376 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar om2006-10-011-2/+4
* It all came down to a >1 where we needed a >0. Things should be stable now jamie•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5375 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-10-011-1/+4
* Take some debug crap out of ModeParser::ModeString()•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5209 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-09-101-1/+0
* * Fix ChanModes::ModeString to not try and set a key as a user mode ;)•••* Tweak the way cyclehosts works, so that mode change is not echoed back to user who changes their host/ident git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5208 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-09-101-1/+2
* Reset LastParse string when we try to parse new modes•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5188 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-09-091-0/+2
* Tidier string building•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5185 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-09-091-12/+4
* Make SAMODE oper output tidier•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5184 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-09-091-0/+24
* And fix it so it doesnt go into an infinite loop when meeting the end conditi...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5183 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-09-091-1/+1
* Add sane limiting to mode output, so we cant have more than 100 mode chars in...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5182 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-09-091-0/+10
* m_override is now fixed, replaced AC_GENERAL_MODE OnAccessCheck event•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5180 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-09-091-8/+16
* Add /RELOAD and move cmd_mode into its own command.•••/RELOAD is the only thing you cant reload (ahem) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5119 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-09-031-11/+0
* Allow unloading of modules which implement modes!•••The default implementation of the new system will remove simplemodes so any mode handler which is just a simple mode (no params and not a list mode) does not need to add much more than one line of code and remove its VF_STATIC flag. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5100 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-09-021-0/+76
* In this instance find is faster than rfind•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5086 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-08-301-1/+1
* And make it work here•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5085 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-08-301-1/+1
* Fix for parameters which contain a colon (which is not the first char in the...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5084 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-08-301-1/+1
* Wahhhhhhhhhhhh bwahahaha. Mass commit to tidy up tons of messy include lists•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5080 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-08-301-8/+0
* Only send 008 when MODE Oper•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5075 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-08-291-1/+2
* Clarify message•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5074 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-08-291-2/+3
* Don't silently drop modes that are oper only when a non-oper tries to set the...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5073 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-08-291-0/+4
* auto-set +s when +n is set (as +n requires +s) - allow +n to be 'set twice' a...•••Add default snomask chars git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5063 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-08-291-2/+2