summaryrefslogtreecommitdiff
path: root/src/mode.cpp
Commit message (Expand)AuthorAgeFilesLines
...
* Move some stuff to usermanager, remove a little header insanity, remove trace...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8790 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2008-02-021-1/+1
* Header update: 2007 -> 2008•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8694 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2008-01-101-1/+1
* Hopefully correct implementation of OnRawMode.. can someone pls check this fo...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8654 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2008-01-061-0/+15
* Partial fix for bug #441•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8479 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-11-031-1/+2
* pedantic safe•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8316 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-10-231-35/+30
* Remove the need for a bunch of the hard coded arrays/hashes by scanning the s...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8307 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-10-221-0/+5
* In the grand tradition of huge fucking commits:••• - chanrec -> Channel - userrec -> User Enjoy. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8204 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2007-10-151-19/+19
* Support 501 numeric (its different for user modes compared to channel modes) ...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8134 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-10-071-1/+1
* Remove some fake client stuff, make it use the global record•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7941 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2007-08-281-7/+1
* Remove more unnecessary header traffic•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7887 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2007-08-271-3/+0
* Proper fix for end-of-list numerics on restricted lists in bug #386, rather t...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7838 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-08-261-0/+5
* Ive tidied up the mode count stuff, but i still cant duplicate negative invis...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7474 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-07-181-0/+3
* OOPS! We try again, since I'm smoking craq. LF is 0x0a NOT CR.•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7456 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar peavey2007-07-161-1/+1066
* 'svn propset -R svn:eol-style CR *' Set to UNIX-style always. Binaries are au...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7454 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar peavey2007-07-161-1066/+1
* Explicitly disallow mode prefixes > 126, to prevent excess muppetry by 3rd pa...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7438 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-07-131-1/+1
* Compile fixes•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7417 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-07-011-1/+1
* Optimizations and code tidyups. QA please check that svsnick and other forced...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7416 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-07-011-2/+2
* Fix advertising of +h/% in 005 and 004 numerics when halfops are not enabled ...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7282 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-06-121-0/+12
* Change some = "" to clear() and some == "" to .empty()•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7263 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-06-091-6/+6
* Fix bug #310 reported by Smartys, and optimize mode.cpp a bit (was using stri...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7191 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-05-301-4/+4
* Fix std::sort stuff for w00t•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7050 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-05-191-1/+1
* We've had an IS_OPER macro for a long time. About time we started using it, m...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6990 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2007-05-121-3/+3
* foolish human! you can't /mode query a user that isnt there!•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6871 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-05-041-0/+6
* Where others charge, we give for free. Have fun and use wisely. With great po...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6867 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-05-041-1/+18
* 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