1685 Commits

Author SHA1 Message Date
brain
91a8894d5d New mode stuff. Note, the framework is now here so that every mode handler can state what prefix is required to execute it. For example: You can say that mode +j needs '%' to execute it, so that
then only a halfop or above can use mode +j. If you put '@' in this member value, only ops and above can use it. The OnRawMode can return ACR_ALLOW on a case by case basis to totally override this 
check against the prefix char. If you return ACR_DEFAULT the check goes ahead.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8935 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-14 18:24:28 +00:00
brain
ab4dee91de Keep count of the number of events in total, and seperate read, write and error event counters. We can use this for monitoring of heavy socket engine activity, e.g. a 'stuck' eventhandler
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8933 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-14 16:49:22 +00:00
aquanight
f995b32ff4 More <log> stuff
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8928 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-14 00:43:48 +00:00
brain
bfaf7e3b27 Commit patch from danieldg that makes a ton of stuff const-safe for latest warn-happy trigger-happy gcc4 (thanks)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8922 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-13 18:22:19 +00:00
w00t
9d2422582c CONSTIFY\!
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8920 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-13 16:20:05 +00:00
w00t
21a5b7c3cc Fix a silly crash I caused.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8919 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-13 16:14:54 +00:00
w00t
449bbb6e04 Slight API tweak. Change Command to take char * instead of char in it's constructor, this avoids confusion/generates a compile error if someone mixes up flags with number of params, instead of working but not working as expected in a weird manner.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8918 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-13 10:39:25 +00:00
w00t
5db1d322be Add -Wshadow to cflags, and fix a bunch of warnings that come with it. Add a note to webirc that needs looking at.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8892 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-11 09:41:58 +00:00
aquanight
4965a1d669 Code for loading <log method=file> tags from config, but this still needs to be fit into the config reader stuff
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8885 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-10 20:07:30 +00:00
brain
2cc6856e87 Add comments
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8883 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-10 18:37:06 +00:00
brain
11c08b9aed Each Thread class must have its own thread handle, duh. Someone take away my craqpipe NOW.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8876 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-10 14:50:38 +00:00
brain
9dbd7d10ac Add threading engine stuff. Docs to follow, untested and not used anywhere yet
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8874 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-10 14:32:02 +00:00
aquanight
f63580a4ea Per-logstream loglevels.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8871 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-10 14:20:58 +00:00
w00t
1df2121274 Fix a bug in new logging API (global logstreams weren't notified of events if a specific logstream had an event claimed, don't store type in logstreams (pass it to OnLog instead), and add an example of what the new logging API can do: m_chanlog - logs to #services at the moment.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8865 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-09 21:00:07 +00:00
w00t
bfff1d9d93 Implement LogManager::CloseLogs() to give logstreams a chance to clean up on rehash or exit.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8863 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-09 20:15:09 +00:00
w00t
a969da5dec Add destructor for FileLogStream that destroys nonblocking FileLogger
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8861 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-09 13:18:41 +00:00
w00t
2bd34b7037 Add a printf-type override for LogManager::Log(). We need to find a way to see if a log call would have any interest, to avoid unnecessary printf() here though. Convert a bunch of stuff to using new logging (added targets: USERS, USERIO)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8860 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-09 13:06:02 +00:00
w00t
af7e1a1ca8 New logging implementation. Also write messages about InspIRCd::Log() being deprecated. Any takers on changing it all to use the new system? :P. STILL TODO: create <log> blocks in config, add a method called to 'cleanup' (or use destructor) of logstreams, add a method to logmanager to initiate destruction of all logstreams.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8858 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-09 12:41:17 +00:00
w00t
db1c78986c Instantiate log manager
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8857 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-09 11:43:25 +00:00
w00t
3897856fb7 Initial totally untested logger implementation that does nothing.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8856 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-09 11:35:27 +00:00
aquanight
18154f4d22 Support for /invite <user> <channel> <timeout> - if the user doesn't partake in <timeout> time, the invite expires
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8854 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-08 23:35:39 +00:00
brain
0ae3241087 ARGH SPACE INDENTS, DIE DIE DIE
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8849 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-07 15:16:19 +00:00
fez
e1b1b6380c fixed std:: stuff
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8827 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-05 02:42:39 +00:00
fez
41c5854a19 fixed w00t's brain (I mean std:: stuff)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8826 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-05 02:42:01 +00:00
fez
532d9de8c5 fixed std:: stuff
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8825 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-05 02:41:22 +00:00
fez
426be9a89f fixed std:: stuff
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8824 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-05 02:40:51 +00:00
w00t
f127161467 Clear up header insanity
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8808 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-03 23:20:20 +00:00
w00t
34fe4276bd (finally) remove deprecated CMD_USER_DELETED
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8807 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-03 21:23:06 +00:00
w00t
27fbecdaa7 Back out the AllowDevoiceSelf stuff, it wasn't going to work anyway. Accidental commit.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8796 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-02 22:58:56 +00:00
w00t
8509727e16 Cache User::GetIPString()
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8795 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-02 22:57:28 +00:00
aquanight
d555db40f4 Make m_password_hash able to pick up hasher modules after it's loaded, meaning m_md5 and m_sha256 no longer have to be loaded before it.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8793 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-02 22:14:24 +00:00
w00t
dd98d56cab Move some stuff to usermanager, remove a little header insanity, remove trace because it's still less useful than a chocolate fireman.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8790 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-02 20:55:16 +00:00
fez
db90a4e900 removed sys/select.h on windows platform
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8781 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-01 07:37:04 +00:00
aquanight
20bea3078d Change API OnOperCompare to OnPassCompare, password hashing is now available for <connect:allow>, <power die= restart=>, <title> (m_customtitle.so), <vhost> (m_vhost.so), this works the same was as for <oper>: load m_password_hash.so (after all hasher modules, of course), and add hash="md5/sha256/whatever" to the relevant tag. Also fix m_callerid.cpp crashing on unload.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8755 e03df62e-2008-0410-955e-edbf42e46eb7
2008-01-27 00:12:11 +00:00
w00t
ece985ccb3 Remove a redundant method here, call the mode manager directly
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8732 e03df62e-2008-0410-955e-edbf42e46eb7
2008-01-17 23:40:18 +00:00
w00t
94afde43b0 Remove InspIRCd::WriteOpers in favour of snomask O
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8728 e03df62e-2008-0410-955e-edbf42e46eb7
2008-01-17 13:07:49 +00:00
w00t
1e5728d84c Move a number of methods from class InspIRCd to class UserManager
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8726 e03df62e-2008-0410-955e-edbf42e46eb7
2008-01-17 12:17:09 +00:00
w00t
bf77b312c8 Add logger.(cpp|h), will eventually hold implementation of logging manager
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8725 e03df62e-2008-0410-955e-edbf42e46eb7
2008-01-17 12:02:22 +00:00
w00t
05bd4c0a51 Make default bancache time one day. This may seem long, but as XLines expire, so will the bancache entries, so it'll be fine.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8724 e03df62e-2008-0410-955e-edbf42e46eb7
2008-01-16 21:45:50 +00:00
w00t
4b122677df Add an overridden AddHit to BanCacheManager, allowing the expiry time to be set.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8723 e03df62e-2008-0410-955e-edbf42e46eb7
2008-01-16 21:43:03 +00:00
w00t
b979bc4674 Validate <server:id> on startup if provided, thx Brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8721 e03df62e-2008-0410-955e-edbf42e46eb7
2008-01-16 21:36:07 +00:00
w00t
af9d361737 Remove an O(log n) in favour of an O(1) operation, and tidy up culllist some more
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8717 e03df62e-2008-0410-955e-edbf42e46eb7
2008-01-16 16:19:57 +00:00
w00t
72fe978b29 Two stage commit: don't set user->muted except in QuitUser (duplicate setting), also, change muted to drop all socket operations instead of just not reading the user's buffer if muted is set (no point wasting time - they're going away). Also revert culllist back to once per mainloop iteration now it is much cheaper than previously.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8716 e03df62e-2008-0410-955e-edbf42e46eb7
2008-01-16 09:14:23 +00:00
w00t
32026e5b6f Re-add support for silent quits (note: we also remove an O(n) doing it this way)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8715 e03df62e-2008-0410-955e-edbf42e46eb7
2008-01-16 08:55:18 +00:00
w00t
1963fba97f Hacked-up culllist: stores user pointers rather than CullItem, as creating them seems to be very expensive and wasteful. Doesn't support silent quits (yet), and User::QuitUser seems to trigger *many* times per user before they are removed (socketengine getting write events to closed socket perhaps). It's still much quicker than the old way (NO perceptible lag AT ALL :))
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8714 e03df62e-2008-0410-955e-edbf42e46eb7
2008-01-16 07:59:09 +00:00
w00t
f059ceea21 CullList -> CullItem *
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8712 e03df62e-2008-0410-955e-edbf42e46eb7
2008-01-15 16:06:35 +00:00
w00t
c88afe5b9a New timer code. This may be a tiny fraction slower (though I think it will be acceptable given that we no longer need to tick old timers etc), but it is a lot simpler (about half the codesize of the old + no allocation of new timergroups etc), and should (I hope) always tick timers and never 'lose' them. Performs okay under 3500 connection attempts (0:00 CPU time :))
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8708 e03df62e-2008-0410-955e-edbf42e46eb7
2008-01-13 21:29:53 +00:00
w00t
de6bba7882 Move User::AddClient to UserManager::AddClient. WARNING: I assure you this is currently WRONG as I was playing with moving a few bits to the constructor.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8706 e03df62e-2008-0410-955e-edbf42e46eb7
2008-01-13 03:51:04 +00:00
w00t
2192a9f58a First UserManager overhaul: Move clone counts out of InspIRCd & User.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8705 e03df62e-2008-0410-955e-edbf42e46eb7
2008-01-13 03:37:25 +00:00
w00t
f56b7d5e86 Add a channel manager class while I'm at it.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8704 e03df62e-2008-0410-955e-edbf42e46eb7
2008-01-13 03:10:30 +00:00