summaryrefslogtreecommitdiff
path: root/src/userprocess.cpp
AgeCommit message (Collapse)Author
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
2006-07-16Fix socket leak properly this timebrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4405 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-16MAJOR tidy of line parser, some parts rewritten and major chunks removedbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4402 e03df62e-2008-0410-955e-edbf42e46eb7