aboutsummaryrefslogtreecommitdiff
path: root/src/userprocess.cpp
Commit message (Expand)AuthorAgeFilesLines
* Fix a minor crash when a user has no class after OnCheckReady.•••This bug looks serious but it can only be triggered with a very unusual server configuration problem. If you haven't already had a crash then you probably aren't at any risk. The way this crash happens is: 1. InspIRCd::DoBackgroundUserStuff is called by the main loop. 2. In the switch statement curr->registered is set to REG_NICKUSER so InspIRCd::AllModulesReportReady is called. 3. InspIRCd::AllModulesReportReady calls the OnCheckReady event in m_cgiirc. 4. m_cgiirc calls RecheckClass which sets the user's class to NULL and calls LocalUser::SetClass followed by LocalUser::CheckClass. 5. The user doesn't match any classes in LocalUser::SetClass so LocalUser::CheckClass quits the user with with "Access denied by configuration". 6. Control flow returns to InspIRCd::DoBackgroundUserStuff when InspIRCd::AllModulesReportReady returns false. 7. The if statement at the end of InspIRCd::DoBackgroundUserStuff calls ConnectClass::GetRegTimeout on curr->MyClass. 8. ConnectClass::GetRegTimeout tries to access a member of this which is NULL. 9. The server crashes with a SEGFAULT. Gravatar Peter Powell2015-02-231-1/+6
* Fix User::age being incorrectly used in some places instead of signonGravatar Attila Molnar2014-12-301-1/+1
* Revert "Fix an off-by-one on registration timeout handling."•••This seemingly breaks (occasionally timing users out a second early), possibly due to rounding issues on time (User::age and Time() both return int, but a whole second is comprised of many ms). The root cause needs investigation, but we cannot leave a potentially breaking bug in the tree. This reverts commit 4414d644a163f3906f90b35186e07ce0383161f4. Gravatar Robin Burchell2014-10-051-1/+1
* Fix an off-by-one on registration timeout handling.•••The use of > instead of >= here added a second onto the configured timeout. We won't be breaking any existing configuration, because users.h explicitly increases the limit if it's 0. Gravatar Robin Burchell2014-10-041-1/+1
* Add a typedef for LocalUserListGravatar attilamolnar2012-11-291-1/+1
* Replace copyright headers with headers granting specific authors copyrightGravatar Robby-2012-04-191-8/+18
* Fix the pseudo-penalty hack that doesn't work properlyGravatar Daniel De Graaf2010-09-051-1/+1
* Remove excessive gettimeofday system calls•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12293 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar danieldg2010-01-181-4/+4
* ...because every now and again, i have to do a massive commit.•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12248 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2010-01-111-1/+1
* Add fine-grained command flood controls•••This reintrouces "Excess Flood" quits for those that prefer it to fakelag, and allows the maximum command rate to be set in the connect block. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12093 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar danieldg2009-11-111-2/+6
* Move StreamSocket inheritance off of User•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12047 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar danieldg2009-11-061-1/+1
* Move SetClass to LocalUser•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11941 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar danieldg2009-10-211-1/+1
* Split LocalUser and RemoteUser•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11940 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar danieldg2009-10-211-1/+1
* Get rid of a bunch of memory-wasting C-style strings•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11796 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar danieldg2009-10-031-1/+1
* Flexible SendQ•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11766 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar danieldg2009-09-261-5/+0
* Remove InspIRCd* parameters and fields•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11763 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar danieldg2009-09-261-6/+6
* Create StreamSocket for IO hooking implementation•••Fixes the SSL SendQ bug Removes duplicate code between User and BufferedSocket Simplify SSL module API Simplify EventHandler API (Readable/Writeable moved to SE) Add hook for culled objects to invoke callbacks prior to destructor Replace SocketCull with GlobalCull now that sockets can close themselves Shorten common case of user read/parse/write path: User::Write is now zero-copy up to syscall/SSL invocation User::Read has only two copy/scan passes from read() to ProcessCommand git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11752 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar danieldg2009-09-211-98/+6
* Fix segfault due to invalidated iterator•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11641 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar danieldg2009-09-021-1/+3
* Update all wiki links to point to the new wiki. This was done automatically w...•••for file in $(find -type f -and -not -path '*/.svn/*' -and -not -name '*.so') ; do sed -e 's#http://www.inspircd.org/wiki#http://wiki.inspircd.org#' -e 's#http://wiki.inspircd.org/index.php/#http://wiki.inspircd.org/#' -i $file ; done git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11223 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar psychon2009-03-151-1/+1
* Update copyrights for 2009.•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10932 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2009-01-021-1/+1
* Fix glitch before release•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10864 e03df62e-2008-0410-955e-edbf42e46eb7 v1.2.0b4Gravatar brain2008-12-071-1/+1
* Remove lines_in and reset_due flood protection mechanism, recvq/sendq on thei...•••This tidies up *a lot* of code, and also saves a further sizeof(time_t) + sizeof(unsigned int) per user. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10838 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2008-12-011-25/+1
* Remove m_operflood, add privs: users/flood/no-throttle & users/flood/increase...•••This also saves another sizeof(bool) per user. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10837 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2008-12-011-1/+1
* Remove OverPenalty, saves sizeof(bool) per user.•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10836 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2008-12-011-7/+1
* Merge the second interface for socket hooking into one, so it's all done by A...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10457 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2008-09-071-2/+2
* match() is no longer a function+no header, now a static method of InspIRCd cl...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10212 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2008-08-211-1/+0
* Remove last vestige of libircdfoo, by changing tag into a single identifier...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10076 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2008-07-291-1/+1
* Fix the 4-byte read madness discovered by psychon•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10045 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2008-07-191-2/+2
* Use a switch (cleaner, probably more efficient) for user status here, also, w...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10041 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2008-07-191-37/+33
* Convert connection::host•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9768 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2008-05-191-2/+2
* Don't background process quitting users (there's no point), half fixes Jason'...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9761 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2008-05-191-0/+3
* Make User:: nick/ident/dhost/fullname and some other things std::string inste...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9748 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar aquanight2008-05-181-4/+4
* Move QuitUser into UserManager class, and unstaticize it. This prepares for s...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9442 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2008-04-091-5/+6
* Add stuff so that modules can hook users by altering a pointer in the User cl...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9187 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2008-03-241-2/+2
* Convert remaining InspIRCd::Log() calls to new logging system•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9001 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar aquanight2008-02-221-2/+2
* Nuke TIMESYNC from orbit \o/•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8998 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2008-02-221-1/+1
* Move some stuff to usermanager, remove a little header insanity, remove trace...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8790 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2008-02-021-1/+1
* Two stage commit: don't set user->muted except in QuitUser (duplicate setting...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8716 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2008-01-161-2/+0
* Header update: 2007 -> 2008•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8694 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2008-01-101-1/+1
* Fix up to pass User*•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8442 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-10-311-1/+1
* Fixified some more•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8428 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-10-311-2/+5
* PERL PIE FOR ALL: Rename a fuckload of XLineManager's methods•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8399 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2007-10-281-2/+2
* - Tear out a useless load of XLine clutters that did nothing much except conf...•••- Revert back to early 1.0 design of using a single list for line storage. We'll make this work more efficiently than 1.0 though of course. This simplifies the code for expiry, checking, etc. - Merge a bunch of sort callbacks into a single sort callback for class XLine. - Horribly break apply_lines() for the time being. .. and that's probably it. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8398 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2007-10-281-1/+2
* this should fix any of the crashes w00t outlined where User::MyClass == NULL.•••The simplest fix seems to be that if the user has no class, skip all the code that uses the class values. This makes sense because the only situation where User::MyClass == NULL is when they arent authorised to connect and are being quit so checking flood levels and max sendq etc are irrelevent. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8358 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-10-251-12/+15
* Move some stuff from using userrec cached stuff to using stuff in the connect...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8339 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2007-10-231-5/+5
* Remove the need for a bunch of the hard coded arrays/hashes by scanning the s...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8307 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-10-221-0/+2
* Move DNS timeouts into the UserResolver class, where they should have been (b...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8278 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar w00t2007-10-211-18/+2
* Remove more debug•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8268 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-10-211-2/+0
* Fixed ssl clients on trunk. The problem peavey was having was that before Rea...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8263 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-10-211-1/+3
* Move some stuff around so the last penalty line doesnt get held erroneously u...•••git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8254 e03df62e-2008-0410-955e-edbf42e46eb7 Gravatar brain2007-10-211-3/+4