summaryrefslogtreecommitdiff
path: root/src/channels.cpp
AgeCommit message (Collapse)Author
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
2006-08-28Add support for NAMESXbrain
Tidy up m_alias blank lines Add m_namesx.so to example conf (no extra config tags required for it, it "just works") git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5039 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-23Multi-prefix FJOIN, and allowing module-defined prefixes across the networkbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5002 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-23More prefixchar stuff.brain
WARNING: 005 numeric is broken in this commit. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5000 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-23Document mode prefixesbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4999 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-23Spotted problem: must clear out all prefixes attached to a user when they ↵brain
quit or leave a channel Next thing to do, consider removing of opped_userlist, halfopped_userlist and voiced_userlist as this data is now in the prefixlist git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4998 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-23Mode handlers handling listmodes where a listmode item is a nickname can now ↵brain
specify prefixes!!!!!! This isnt documented yet. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4997 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-18EventHandler class, an abstraction for raw i/obrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4941 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11Just to mess with om's head, remove helperfuncs.h from everywherebrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4900 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11CamelCaseRocksSoMuchICamelCasedAllTheMethodsOfClassInspIRCdSoThatItAllLooksNeat.brain
NowSomebodyHasToSpendHoursDocumentingAllOfThisIWonderWhoThatWillEndUpBeing... git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4889 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11Move remaining functions:brain
operstrcmp* commands.cpp InspIRCd::operstrcmp() duration* commands.cpp InspIRCd::duration() host_matches_everyone* commands.cpp InspIRCd::host_matches_everyone() ip_matches_everyone* commands.cpp InspIRCd::ip_matches_everyone() nick_matches_everyone* commands.cpp InspIRCd::nick_matches_everyone() git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4888 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11Change to using Instance->Log (InspIRCd::Log) rather than log() macrobrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4880 e03df62e-2008-0410-955e-edbf42e46eb7