summaryrefslogtreecommitdiff
path: root/src/channels.cpp
AgeCommit message (Collapse)Author
2007-05-10Tweaks here so we can avoid data copies in uhnamesbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6940 e03df62e-2008-0410-955e-edbf42e46eb7
2007-05-10Small api change with wide reaching effects in modules - Allows modification ↵brain
of whats displayed by NAMES on a per-nick basis, so we can have UHNAMES in a seperate module to NAMESX (and possibly do some funky other stuff in the future too!) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6934 e03df62e-2008-0410-955e-edbf42e46eb7
2007-05-08We're setting chanrec::creation in here and not chanrec::age, this can and ↵brain
will fuck up TS. Set Both. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6910 e03df62e-2008-0410-955e-edbf42e46eb7
2007-05-04Fix bug where if an op is in channel then does /names later, all the non-ops ↵brain
dissapear! git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6877 e03df62e-2008-0410-955e-edbf42e46eb7
2007-05-04Add <auditorium showops> which determines if auditorium works like ircnet +a ↵brain
(anonymous channels) or like unrealircd +u. The old behaviour is similar to anonymous channels, only showing the current user. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6875 e03df62e-2008-0410-955e-edbf42e46eb7
2007-05-04Where others charge, we give for free. Have fun and use wisely. With great ↵brain
power comes great responsbility. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6867 e03df62e-2008-0410-955e-edbf42e46eb7
2007-05-03DO NOT USE THIS COMMIT - if you do, most of the modules wont work.brain
DEVS: Please fix all modules that have warnings to use the new parameters to OnUserJoin, OnUserPart and OnUserKick (bool &silent) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6858 e03df62e-2008-0410-955e-edbf42e46eb7
2007-03-18set the TS of a channel in JoinUser, not after the entire FJOIN, this is ↵brain
safer and may fix the odd desync here and there git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6690 e03df62e-2008-0410-955e-edbf42e46eb7
2007-02-19Addition of feature request outlined in bug #195, suggested by Brickerbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6602 e03df62e-2008-0410-955e-edbf42e46eb7
2007-01-15Crusade to remove debug from stable and tested parts of the core and base ↵brain
modules. 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
2007-01-09Assigning a std::string var initially to "" is pointless.brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6271 e03df62e-2008-0410-955e-edbf42e46eb7
2007-01-09Tidy up (optimize, improve) chanrec::WriteChannelWithServbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6269 e03df62e-2008-0410-955e-edbf42e46eb7
2007-01-09Tidy up an if/then/else chain into a switchbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6268 e03df62e-2008-0410-955e-edbf42e46eb7
2007-01-09Cache channel max bans value to save an O(n) loop of match() on every ban ↵brain
(etc) add git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6267 e03df62e-2008-0410-955e-edbf42e46eb7
2007-01-06Fix desync with halfop and voice when opped (this happens because we were ↵brain
ORing the wrong value in chanrec::ForceChan) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6232 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-30Tweaks to instantiate less stuff when writing to a bunch of usersbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6172 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-30Tons of optimization of WriteChannel, WriteChannelWithServ, WriteCommon etc, ↵brain
dont call userrec::GetFullHost or snprintf for every item, call it just once. Turns O(n) calls for every write into O(~1) calls per write. Remove some debug from the socketengines which makes debugging hard on large channels (write availability message) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6171 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-23Hash rehashing changebrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6080 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-15Jesus, look who's the commit whore today. More header updates, and removal ↵w00t
of namespacing. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5996 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-15Cleaning up irrelevent stuff in channels.cppbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5993 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-14Fix silly bug of the day.brain
User was only getting a userrec::chans entry added if they had any privelages on the channel. If they werent opped, voiced, or halfopped on join, no entry in the hash. Silly brain now added a: user->chans[Ptr] = 0; :p git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5990 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-14Refactor userrec::chans.brain
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
2006-12-03Make the 'override' parameter actually *do* something, weew00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5836 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-26Add extra parameter to OnUserPreNotice and OnUserPrePrivmsg, CUList ↵brain
&exempt_list, a list of users NOT to write to. By default it just contains the sender, you can add more. This also bumps the module api version by one. added "CUList fixme" to peaveys module just so it builds, as this will be refactored to use the new feature that was just added :) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5806 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-12Thanks for the pointer jilles ;)brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5720 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-05Added time syncing! This is fairly simple - servers exchange timestamps and ↵special
use the lowest - but should get rid of the annoying bounces for those of us who can't depend on ntpd. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5649 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-27<pid file> is no longer a manditory tag (thanks dotslasher)brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5556 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-01Added OnPostJoin, which is (at the moment) almost exactly identical to ↵special
OnUserJoin but called after, so you can play with linking git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5361 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-30Fix mode desync when setting custom prefixes on joining users (trigger the ↵brain
mode handler explicitly) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5359 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-27Tidyupsbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5350 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-27Commentsbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5349 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-27Because the user's prefix list must remain sorted at all times (because of ↵brain
assumptions in xchat) this means that we don't need to scan the list looking for their highest prefix, it will always be at begin(). This changes the speed of GetPrefix() and GetPrefixValue() from O(n) to O(1). git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5348 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-27Optimizationsbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5347 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-27Tidy up how PART without reason is donebrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5346 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-27And correct itbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5344 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-27Move OnCheckBan into chanrec::IsBanned() so its always called for any ↵brain
attempt to check any ban git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5343 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-26Fix handling of multiple @%+ core permissions modes on join when more than ↵brain
one are given git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5334 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-25Mini security auditbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5333 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-25Whoops, fix minor typobrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5328 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-25More patchbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5325 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-25Whoops, patchbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5324 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-19Tidy up key handlingbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5301 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-11Whack a strlcpy()brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5220 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-10* Fix ChanModes::ModeString to not try and set a key as a user mode ;)brain
* 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
2006-09-08Explicitly call the std::string version of WriteServ in chanrec::UserList to ↵brain
prevent string format accidents with users who have halfop (oooops) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5159 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-02Add chanrec::IsBanned() so that we dont have to keep walking the banlist in ↵brain
various modules and using match() git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5099 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-31Made CountChannels faster. We use it in quite a few places. It's now O(1) ↵brain
rather than O(n) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5094 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-30Wahhhhhhhhhhhh bwahahaha. Mass commit to tidy up tons of messy include listsbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5080 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-28Zed, you are found guilty of over-assuming the IRC protocol and forcing ircd ↵brain
developers to sort lists during prefix adding. How do you plead. SOD THAT, YOURE GUILTY!!!!! git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5052 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-28YOU KNOW I REALLY HATE IT WHEN CLIENT AUTHORS JUST MAKE ASSUMPTIONS ON ↵brain
THINGS LIKE "oh all prefixes in NAMESX will always be in rank order". So tell me, zed, where the FUCK does it say that? huh?! git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5051 e03df62e-2008-0410-955e-edbf42e46eb7