summaryrefslogtreecommitdiff
path: root/src/users.cpp
Commit message (Expand)AuthorAgeFilesLines
...
* Tons of optimization of WriteChannel, WriteChannelWithServ, WriteCommon etc, ...•••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 Gravatar brain2006-12-301-4/+14
* Add unregistered user counter, this may also fix the (minor) m_conn_lusers sh...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6170 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-12-301-1/+11
* Fix a bug in whowas that could desync list.•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6091 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar peavey2006-12-241-2/+2
* Fix loop when quitting multiple users (this is probably whats eating cpu)•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6084 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-12-241-3/+7
* Hash rehashing change•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6080 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-12-231-17/+18
* Remove useless debug•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6062 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-12-221-8/+0
* Refactor connect allow/deny lines•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6061 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-12-221-37/+32
* Proper fix for CS server crash, forgot to delete chanrec* from users chanlist...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6052 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar peavey2006-12-211-3/+1
* Crude hotfix to what's been crashing chatspike•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6051 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar peavey2006-12-211-0/+3
* When we handle a READ event on a user, return immediately.•••This is because the read event may remove the user, in which case the !empty and quituser check below will address invalid data! git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6049 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-12-191-1/+1
* Add stuff so that the core catches CoreException properly•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6017 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-12-161-6/+6
* 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-7/+4
* Try harder to make sure the ERROR string gets sent when closing a connection•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5994 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-12-151-0/+4
* Cleaning up irrelevent stuff in channels.cpp•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5993 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-12-151-31/+11
* Remove misc debug•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5991 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-12-141-7/+0
* Fix silly bug of the day.•••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 Gravatar brain2006-12-141-4/+10
* Change how users are quit if they get a write error during the things they do.•••Instead of QuitUser inside FlushWriteBuffer() (potentially *UNSAFE*), go back to using SetWriteError(), but to ensure we dont get a cascade of bad write events from the socket engine, QuitUser the user before returning in userrec::HandleEvent, after we can gaurantee ALL other reading or writing is done. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5987 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-12-141-5/+15
* 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-96/+50
* Refactoring:•••1) Chain together a resize and an append, to improve the buffer read efficiency 2) eliminate a const char* pointer by doing it purely with string, saving a data copy 3) use iterators rather than ints and vector::size() for spooling motd and rules files to users 4) change a usage of !length() to empty() to make it more readable git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5985 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-12-141-18/+9
* Improve the way 005 ISUPPORT is sent to users when they connect, cache it in ...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5978 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-12-131-21/+2
* Improve how we handle ELINEs on connect, turn O(2n) into O(n) (thats the best...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5968 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-12-121-29/+8
* New clone counting mechanism (this isnt tested yet)•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5967 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-12-121-32/+33
* Correctly handle write events•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5920 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-12-101-4/+4
* Fix bug found on barafranca, where quitting the user causes a cascade of erro...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5919 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-12-101-1/+2
* Make this look less insane :P•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5835 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2006-12-031-1/+1
* Fix /whois on users with lots, and lots of channels (see /whois idleserv). Wa...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5755 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2006-11-161-1/+1
* Tons of tweaks to the config stuff for the core•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5744 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-11-141-6/+6
* use --iter instead of iter-- in prunewhowas•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5738 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar peavey2006-11-131-1/+1
* fix for bug #173, unsafe delete while iterating•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5737 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar peavey2006-11-131-2/+6
* Fix PruneWhoWas to actually work right on rehash. Add debug output to whowas....•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5734 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar peavey2006-11-131-14/+25
* add <whowas> config option to control whowas behaviour. *may break*•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5731 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar peavey2006-11-131-2/+53
* Fix off-by-one error in userrec::ChangeDisplayedHost, some hosts were truncated•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5709 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar om2006-11-121-2/+2
* Apply patch for bug #165 (compile warning for users.cpp) by peaveydk•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5660 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar special2006-11-061-1/+1
* Fix IPv4 resolution, spank satmd if you were affected by this•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5659 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2006-11-061-0/+4
* Added time syncing! This is fairly simple - servers exchange timestamps and u...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5649 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar special2006-11-051-0/+1
* Merge peaveys patch, tracker #162•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5642 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-11-041-2/+17
* Fix compile error, and spank Brain•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5634 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2006-11-031-1/+1
* When we get an event on a userrec of EVENT_ERROR, and errornum is 0, send the...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5633 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-11-021-1/+1
* Please in the future everyone: DO NOT submit patches via nopaste. Nopaste is ...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5632 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-11-021-6/+9
* Fixed another overflow, identical to the last one•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5622 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar special2006-11-011-1/+1
* Fixed a little overflow, noticed by satmd•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5621 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar special2006-11-011-1/+1
* Set write error when detected•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5610 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-10-311-0/+3
* Socket error state stuff•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5607 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-10-311-1/+1
* Fix broken quits (i broke them by taking out a check i didnt think was requir...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5590 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-10-301-1/+1
* Select is now done, and some debug removed. Not that anyone really should be ...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5587 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-10-301-1/+0
* Fix for laggehness•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5585 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-10-301-0/+7
* For users, we now only write when the socketengine says theyre writeable, set...•••The old way was to always try and flush the buffer after every read, regardless of wether the socket was writeable git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5584 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-10-301-0/+1
* WARNING: This commit breaks kqueue and select -- work in progress!•••epoll now allows both a write and a read event on a socket at the same time. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5580 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-10-301-2/+16
* And fix typo•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5574 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-10-281-1/+1
* Add support for OnWhoisLine, which allows modules to change or drop any line ...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5570 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2006-10-281-3/+4