summaryrefslogtreecommitdiff
path: root/src/users.cpp
AgeCommit message (Collapse)Author
2007-10-25this should fix any of the crashes w00t outlined where User::MyClass == NULL.brain
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
2007-10-24Implement <connect:limit> - limits how many clients can sit inside a ↵w00t
<connect> tag. Brain, we have a problem here in that if we User::QuitUser() a user with a NULL MyClass member (connect class), then things break (like sendq et al). What should we do with this, create a generic catchall class or something just in case? (to replicate, set up a single connect class with a low limit, and connect too many clients. Crash is the result) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8357 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-24Disable all connect classes, reenable them as we find them in the config. ↵w00t
This stops users using a connect class removed from the conf (or will in a second) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8355 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-24Try this w00t, compiles, test running nowbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8343 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-24Start of refcount-based rehash stuff for <connect> tags, this is broken and ↵w00t
rather ugly right now.. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8342 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-23Move some stuff from using userrec cached stuff to using stuff in the ↵w00t
connect classes git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8339 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-23Fix a bug before I even started this.. don't let User::SetClass() decrease ↵w00t
the reference count if we cannot find the new class to plop them into, that will nark things up nicely.. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8338 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-23Some more class stuff, blah. Now possible to move a user to a different ↵w00t
class via User::SetClass(), which cmd_oper uses. GetClass() is now just a wrapper around User::MyClass. User::CheckClass() does not support any parameters anymore, nor does User::GetClass().. I think I have this all right ;p git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8337 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-23Some initial work towards tying <connect> classes to user accounts. This ↵w00t
will (in the longer term) allow for things like limits on how many users can fit in a <connect> for 1.2 git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8336 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-22Remove the need for a bunch of the hard coded arrays/hashes by scanning the ↵brain
src/ dir for tag comments, like in modules git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8307 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-21Tidy up some DNS stuff morew00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8280 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-21Add User::IncreasePenalty() and User::DecreasePenalty()w00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8264 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-21Fixed ssl clients on trunk. The problem peavey was having was that before ↵brain
ReadBuffer was char[] now its char*. sizeof() on char[] returns its size in chars, and sizeof on char* returns 4. :p git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8263 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-21*untested* command buffering/penaltybrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8250 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-21Dont forget to initialize the new valuebrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8248 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-21Add User::UnderPenaltybrain
/** If this bool is set for a user, then the user is under penalty, in short they * are waiting for some held commands to be executed. If this is the case, then * any commands they have in their sendq are executed on a timer tick rather than in * their event handler. */ git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8244 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-21Change a !string.length to string.empty. these are more readable and on some ↵brain
implementations faster git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8243 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-18Socket engine tweaks to fix a glitch, and improvements to new m_identbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8225 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-16Remove second overridden (fully duplicated :/) copy of GetIPString which ↵w00t
copies into a user specified buffer. It's not used anywhere, and is duplication ;( git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8218 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-16Typo fixw00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8217 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-16Update a commentw00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8216 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-15Move oper classes and types stuff from users to configreader. It may need to ↵w00t
go in a class, I'm not going to investigate that now. Also make HasPermission() a bit easier to read via same changes I did in command_parse, but the strtok/strdup stuff really really has to go somehow I think.. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8215 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-15Split user resolver into its own file.w00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8209 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-15In the grand tradition of huge fucking commits:w00t
- chanrec -> Channel - userrec -> User Enjoy. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8204 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-15class command_t -> class Command. Whey :Dw00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8203 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-14Put this back how it was, it didnt help with the fix last night which turned ↵brain
out to be something else git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8190 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-14Tweaksbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8174 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-13Move some stuff around, this will move a crash to a different place and ↵brain
maybe we'll catch it git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8171 e03df62e-2008-0410-955e-edbf42e46eb7
2007-09-30Whoops, forgot some stuff for when GECOS was moved to position 10 in the UID ↵brain
command, this was broken git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8102 e03df62e-2008-0410-955e-edbf42e46eb7
2007-09-26Fixed bug #404; this was caused by recieving multiple OPERTYPEs from a ↵special
remote server, which eventually resulted in bad pointers inside the all_opers list git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8084 e03df62e-2008-0410-955e-edbf42e46eb7
2007-09-23More compile fixesbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8057 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-29Add a pointless WriteOpersbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7998 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-28Slight change to traffic logging, as I never remember which way the damn ↵w00t
arrows go: I now means in, O now means out. C and S remain unchanged git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7948 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-27Catch exceptions here for duplicate uuid (it shouldnt happen, which is why ↵brain
the exception message is so rediculous) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7914 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-27Remove more unnecessary header trafficw00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7887 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-27Add FindNickOnly, that wont fall through to uid checks if isdigit(*first). ↵brain
We may need this. (i thought we did for this fix, we dont) Fix cmd_nick to not treat all nicks as invalid and make the client give up. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7883 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-27Whoops, i had a ! and i didnt need onebrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7882 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-27Fixed sigabrtbrain
NOTE to w00t: When a user gets allocated a uid that is duplicate, the constructor throws. This was happening because i didnt pay attention to what i wrote and it always added uid "" :P git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7881 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-27Add uuid hash_map - its management is automatic via userrec ↵brain
constructors/destructors. Note that this means 'fake' users used to set modes etc get a uid, but this isnt a major thing. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7876 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-27A few tidyups, and comment how the new constructors work (so that w00t ↵brain
doesnt wonder where the feck his strlcpys went) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7875 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-27More uuid fixes, and whack some warningsbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7874 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-27Allocate uid in userrec constructor. Optional param added, if its empty, the ↵brain
server allocates one, if its not empty the user gets the one given (this is used for remote users) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7873 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-27Add a call to the NICK handler that allows toggling of allowing invalid ↵brain
nicks to on or off. Use it in ForceNickChange to allow forced nickchange of a nick to a uid. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7869 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-27UUID is now generated and set on client add, and shown after 005 via numeric ↵w00t
042: %s :your unique ID. This also replaces the fd-unknown style of nicks we used prior to recieving NICK from a client, just because it looks tidier. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7848 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-26And zero UUID in constructor.w00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7847 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-23Craquity craq De-craq!brain
This is probably broken on windows, do not attempt to use there yet unless you like broken stuff. Cant say for sure as i havent even tried to build yet and most likely wont tonight. --- Abstract most of the berkely socket API out into SocketEngine derived classes. SocketEngine base class implements standard berkely sockets that 'real mens systems' like linux and freebsd have. For socketengine_iocp we implement the windows specific nonesense like the special things needed for udp and accept (ick). All this to eliminate a bunch of ifdefs. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7810 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-19Add <connect:maxchans> as per feature bug #338 - combined with the last ↵brain
feature, this allows per-oper specific maxchans values, and even the same for non-opers! git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7761 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-19Allow changing of an oper's host on oper up using <type:class> (give it a ↵brain
connect allow or deny line name) - implements bug #367 git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7760 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-19Allow support for multiple dns results per request. This is a significant ↵brain
change and should probably not be backported to stable. This will allow for a fix to feature request bug #384 git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7753 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-06Reset connect class settings on DNS resolution as we should.w00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7680 e03df62e-2008-0410-955e-edbf42e46eb7