summaryrefslogtreecommitdiff
path: root/src/userprocess.cpp
AgeCommit message (Collapse)Author
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-14Remove FlushWriteBuffer() from DoBackgroundUserStuff(). Its no longer ↵brain
required here, it used to try and flush the buffer before we actually monitored write events, long ago, without seeing if it could write first, and wasted cpu. It should be removed now and doesnt seem to affect anything. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5989 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-14Change how users are quit if they get a write error during the things they do.brain
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
2006-12-10Correctly handle write eventsbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5920 e03df62e-2008-0410-955e-edbf42e46eb7
2006-11-05Older gcc gets confused when the only parameter has a default value? O_obrain
Changed an Instance->Time() to Instance->Time(false) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5655 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-31Remove some debugbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5602 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-31Fix the makefile confusion removal of these headers createsbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5601 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-30Fix broken quits (i broke them by taking out a check i didnt think was ↵brain
required -- it was. RTFS!) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5590 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-30For users, we now only write when the socketengine says theyre writeable, ↵brain
setting WantWrite after we call userrec::Write(). 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
2006-10-28Needs more testing but seems to work: In DoBackgroundUserStuff(), calculate ↵brain
the time value of when we actually do need enter the function body again, and dont run function body again till that time git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5568 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-02Use a ternary operator to remove bracketing from ping timeout messagew00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5383 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-01Fix ping timeout messages. This is what I get for not fully testing.w00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5377 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-01Everybody loves boobies. It's true.brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5367 e03df62e-2008-0410-955e-edbf42e46eb7
2006-10-01InspIRCd: Now with 100% more boobies. Err, ping timeout message coolness.w00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5365 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-03Removal of debugbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5133 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-01Add snomask f (flood)brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5097 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-28Note: connect() cant time out for inspsockets in this commit. They'll sit in ↵brain
memory forever -- if you want something actually working properly wait for the next commit git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5040 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-17Optimization and removal of casts (profiling stuff)brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4930 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-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
2006-08-11Now two types of log macro, log() and ilog(). log() assumes an InspIRCd ↵brain
object called ServerInstance, ilog() takes an InspIRCd object as first param. TODO: Run a regexp over these, using perl, to translate them into InspIRCd::Log calls and then eliminate the macro :) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4879 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11Move all of the xline stuff into class XLineManager, make an instance of it ↵brain
in class InspIRCd and use it (eliminates another extern) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4878 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11Move ReadBuffer into InspIRCd classbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4877 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11Move whowas into InspIRCdbrain
Tidy up lowermap extern (for now, we cant do much but have this as extern) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4876 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-11extern time_t TIME -> InspIRCd::Time()brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4873 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10So much stuff changed in this one, i forgot most of it.brain
Oh yeah, main thing is ModeHandler and ModeWatcher classes now take an InspIRCd* to their constructor git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4858 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10Mass-tidyup of module global vars, theyre no longer global vars.brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4856 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10Move IsNick, IsIdent into class InspIRCd, update modules that use it.brain
Change message.h to just a #warning saying its deprecated, and remove all use of it from the core :) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4847 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10FindNick, FindChan, ChanModes, UserList, CountInvisible, PurgeEmptyChannels, ↵brain
GetClass, WriteOpers, GetServerDescription -> into classes ServerConfig takes InspIRCd pointer in its constructor git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4832 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-09userrec and chanrec now have their own independent pointer back to their ↵brain
'creator' InspIRCd* object, extern now longer required in channels.cpp or users.cpp git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4820 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-09Move tons more stuff into class InspIRCdbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4819 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-09Move clientlist and chanlist into InspIRCd*brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4818 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-09Move fd_ref_table into class InspIRCd*brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4817 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-09Move socket_ref and module_sockets vectors/arrays into InspIRCd*. These are ↵brain
public members, which InspSocket can modify. (eventually, this will be marshalled safely through some accessors). When constructing an InspSocket you must now provide an InspIRCd* instance to 'attach' the socket to. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4812 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-09ServerConfig extern moved into class InspIRCdbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4808 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-08WHEEEEE!!!!!brain
All of: Write(), WriteTo(), WriteFrom(), WriteServ() are now methods of userrec. Write_NoFormat(), WriteTo_NoFormat(), WriteFrom_NoFormat(), WriteServ_NoFormat() are now std::string-taking overloaded methods of the functions above All modules updated to use new syntax, my fingers hurt :( git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4798 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-08userrec::UpdateNickHash(), userrec::ForceNickChange(), userrec::FullConnect()brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4793 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-08kill_link() and Server::QuitUser() -> userrec::QuitUser() (static member) - ↵brain
this cant be a normal member as it causes the userrec to be deleted, and "delete this" is bad, mmm'k git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4789 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-04Change to using userrec::ip as a sockaddr to store port, ip and address ↵brain
family, rather than userrec::ip4 and userrec::port. This allows us to handle remote ipv6 users on an ipv4 server, and vice versa. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4694 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-01Comments, add more detail, remove dnsqueue.h include from tons of placesbrain
Remove THREADED_DNS defines from all over the place git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4629 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-01Remove the same craqbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4619 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-01Remove ZapThisDnsbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4617 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-01The IPV6 stuff compiles now, with compile-correct ipv6 code. I dont know if ↵brain
this works yet. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4611 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-30I think ive found the answer to the hanging connections problem. The ↵brain
majority of stuff in userprocess is skipped over when fd==0, it was fd > 0 rather than fd > -1 in a check. This would prevent one user (near the first) with fd 0 from connecting properly. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4605 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-28Change all references to voodoo numbers (7, 3 etc) to the new bitwise ↵brain
constants for user->registered Change a lot of user->fd > -1 to use the IS_LOCAL() macro git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4569 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-22Make OnCheckReady safe against the user being killed, SO LONG AS THE MODULE ↵brain
WHICH D/C'S THE USER RETURNS FALSE git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4501 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-20Extra sanity checksbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4457 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-19Stability fixbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4453 e03df62e-2008-0410-955e-edbf42e46eb7