aboutsummaryrefslogtreecommitdiffstats
path: root/src/users.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Implement <connect:limit> - limits how many clients can sit inside a ↵Gravatar w00t2007-10-241-0/+7
| | | | | | <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
* Disable all connect classes, reenable them as we find them in the config. ↵Gravatar w00t2007-10-241-3/+6
| | | | | | 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
* Try this w00t, compiles, test running nowGravatar brain2007-10-241-7/+11
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8343 e03df62e-2008-0410-955e-edbf42e46eb7
* Start of refcount-based rehash stuff for <connect> tags, this is broken and ↵Gravatar w00t2007-10-241-2/+2
| | | | | | rather ugly right now.. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8342 e03df62e-2008-0410-955e-edbf42e46eb7
* Move some stuff from using userrec cached stuff to using stuff in the ↵Gravatar w00t2007-10-231-10/+5
| | | | | | connect classes git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8339 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix a bug before I even started this.. don't let User::SetClass() decrease ↵Gravatar w00t2007-10-231-11/+22
| | | | | | 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
* Some more class stuff, blah. Now possible to move a user to a different ↵Gravatar w00t2007-10-231-25/+30
| | | | | | 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
* Some initial work towards tying <connect> classes to user accounts. This ↵Gravatar w00t2007-10-231-0/+32
| | | | | | 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
* Remove the need for a bunch of the hard coded arrays/hashes by scanning the ↵Gravatar brain2007-10-221-0/+2
| | | | | | src/ dir for tag comments, like in modules git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8307 e03df62e-2008-0410-955e-edbf42e46eb7
* Tidy up some DNS stuff moreGravatar w00t2007-10-211-0/+9
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8280 e03df62e-2008-0410-955e-edbf42e46eb7
* Add User::IncreasePenalty() and User::DecreasePenalty()Gravatar w00t2007-10-211-0/+10
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8264 e03df62e-2008-0410-955e-edbf42e46eb7
* Fixed ssl clients on trunk. The problem peavey was having was that before ↵Gravatar brain2007-10-211-2/+2
| | | | | | 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
* *untested* command buffering/penaltyGravatar brain2007-10-211-1/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8250 e03df62e-2008-0410-955e-edbf42e46eb7
* Dont forget to initialize the new valueGravatar brain2007-10-211-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8248 e03df62e-2008-0410-955e-edbf42e46eb7
* Add User::UnderPenaltyGravatar brain2007-10-211-1/+1
| | | | | | | | | | | /** 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
* Change a !string.length to string.empty. these are more readable and on some ↵Gravatar brain2007-10-211-1/+1
| | | | | | implementations faster git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8243 e03df62e-2008-0410-955e-edbf42e46eb7
* Socket engine tweaks to fix a glitch, and improvements to new m_identGravatar brain2007-10-181-0/+4
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8225 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove second overridden (fully duplicated :/) copy of GetIPString which ↵Gravatar w00t2007-10-161-42/+4
| | | | | | 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
* Typo fixGravatar w00t2007-10-161-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8217 e03df62e-2008-0410-955e-edbf42e46eb7
* Update a commentGravatar w00t2007-10-161-2/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8216 e03df62e-2008-0410-955e-edbf42e46eb7
* Move oper classes and types stuff from users to configreader. It may need to ↵Gravatar w00t2007-10-151-75/+29
| | | | | | 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
* Split user resolver into its own file.Gravatar w00t2007-10-151-103/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8209 e03df62e-2008-0410-955e-edbf42e46eb7
* In the grand tradition of huge fucking commits:Gravatar w00t2007-10-151-123/+123
| | | | | | | | - chanrec -> Channel - userrec -> User Enjoy. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8204 e03df62e-2008-0410-955e-edbf42e46eb7
* class command_t -> class Command. Whey :DGravatar w00t2007-10-151-2/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8203 e03df62e-2008-0410-955e-edbf42e46eb7
* Put this back how it was, it didnt help with the fix last night which turned ↵Gravatar brain2007-10-141-12/+8
| | | | | | out to be something else git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8190 e03df62e-2008-0410-955e-edbf42e46eb7
* TweaksGravatar brain2007-10-141-9/+12
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8174 e03df62e-2008-0410-955e-edbf42e46eb7
* Move some stuff around, this will move a crash to a different place and ↵Gravatar brain2007-10-131-0/+1
| | | | | | maybe we'll catch it git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8171 e03df62e-2008-0410-955e-edbf42e46eb7
* Whoops, forgot some stuff for when GECOS was moved to position 10 in the UID ↵Gravatar brain2007-09-301-3/+8
| | | | | | command, this was broken git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8102 e03df62e-2008-0410-955e-edbf42e46eb7
* Fixed bug #404; this was caused by recieving multiple OPERTYPEs from a ↵Gravatar special2007-09-261-10/+3
| | | | | | 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
* More compile fixesGravatar brain2007-09-231-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8057 e03df62e-2008-0410-955e-edbf42e46eb7
* Add a pointless WriteOpersGravatar brain2007-08-291-0/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7998 e03df62e-2008-0410-955e-edbf42e46eb7
* Slight change to traffic logging, as I never remember which way the damn ↵Gravatar w00t2007-08-281-1/+1
| | | | | | 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
* Catch exceptions here for duplicate uuid (it shouldnt happen, which is why ↵Gravatar brain2007-08-271-1/+11
| | | | | | the exception message is so rediculous) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7914 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove more unnecessary header trafficGravatar w00t2007-08-271-3/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7887 e03df62e-2008-0410-955e-edbf42e46eb7
* Add FindNickOnly, that wont fall through to uid checks if isdigit(*first). ↵Gravatar brain2007-08-271-1/+3
| | | | | | | | | 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
* Whoops, i had a ! and i didnt need oneGravatar brain2007-08-271-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7882 e03df62e-2008-0410-955e-edbf42e46eb7
* Fixed sigabrtGravatar brain2007-08-271-1/+4
| | | | | | | 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
* Add uuid hash_map - its management is automatic via userrec ↵Gravatar brain2007-08-271-0/+8
| | | | | | | | | 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
* A few tidyups, and comment how the new constructors work (so that w00t ↵Gravatar brain2007-08-271-2/+6
| | | | | | doesnt wonder where the feck his strlcpys went) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7875 e03df62e-2008-0410-955e-edbf42e46eb7
* More uuid fixes, and whack some warningsGravatar brain2007-08-271-5/+4
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7874 e03df62e-2008-0410-955e-edbf42e46eb7
* Allocate uid in userrec constructor. Optional param added, if its empty, the ↵Gravatar brain2007-08-271-24/+7
| | | | | | | | | 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
* Add a call to the NICK handler that allows toggling of allowing invalid ↵Gravatar brain2007-08-271-1/+9
| | | | | | | | | 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
* UUID is now generated and set on client add, and shown after 005 via numeric ↵Gravatar w00t2007-08-271-2/+8
| | | | | | 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
* And zero UUID in constructor.Gravatar w00t2007-08-261-2/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7847 e03df62e-2008-0410-955e-edbf42e46eb7
* Craquity craq De-craq!Gravatar brain2007-08-231-7/+4
| | | | | | | | | | 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
* Add <connect:maxchans> as per feature bug #338 - combined with the last ↵Gravatar brain2007-08-191-0/+5
| | | | | | 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
* Allow changing of an oper's host on oper up using <type:class> (give it a ↵Gravatar brain2007-08-191-11/+22
| | | | | | 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
* Allow support for multiple dns results per request. This is a significant ↵Gravatar brain2007-08-191-1/+5
| | | | | | | | | 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
* Reset connect class settings on DNS resolution as we should.Gravatar w00t2007-08-061-8/+12
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7680 e03df62e-2008-0410-955e-edbf42e46eb7
* Tidyups, remove of ifdefsGravatar brain2007-07-271-3/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7597 e03df62e-2008-0410-955e-edbf42e46eb7