w00t
|
30b7a1bf7f
|
(sort of..) Revert commit 7736e920fe6ccaf9ad1984afc70db19efd4fb8cd - remove dupe checking on connect classes. Now, we just delete ones with refcount 0 on rehash, and add new ones. Connection can only match a non-disabled class, so most of the braindamage should be gone from here, without causing wild pointer fun..
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10701 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-10-25 10:17:53 +00:00 |
|
brain
|
db3eea2ac4
|
Default 'noisy' to false. Until i hear from w00t i cant see how this can be of use right now (non-opers get spammed with crap just from doing regular things like joining channels)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10678 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-10-18 19:13:25 +00:00 |
|
w00t
|
0d3ecb9642
|
Working privs implementation, and example usage in NOTICE for mass messaging.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10662 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-10-18 16:52:48 +00:00 |
|
w00t
|
f432839202
|
Migrate oper commands to an std::set, add a set for privs also. Change the API a bit.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10661 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-10-18 16:52:46 +00:00 |
|
w00t
|
ca42e17535
|
Add skeleton of HasPrivPermission.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10660 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-10-18 16:52:44 +00:00 |
|
w00t
|
ddb29cf812
|
Remove the duplicate checking/disabled setting of <connect> craq, there is a (better) way to do this, which is to hunt for a new connect class on all users once /rehash happens.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10654 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-10-17 17:57:42 +00:00 |
|
special
|
fee65af28e
|
Replace the IP (in addition to hostname) for CGIIRC clients; fixes glines and zlines on IPs affecting cgiirc users. Thanks to Saz|Laptop
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10607 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-09-29 08:13:49 +00:00 |
|
aquanight
|
09197a4a21
|
Changed Allowed Modes to bitsets.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10541 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-09-13 15:47:01 +00:00 |
|
special
|
901babedd3
|
Clear out the string used for the temporarily stored hostname during DNS resolution. Should save at least strlen(host) per user
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10496 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-09-10 17:48:18 +00:00 |
|
special
|
3b9d311e5c
|
Fixed comments for cached host fields in User; 3/4 of these were completely incorrect.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10494 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-09-10 17:21:19 +00:00 |
|
w00t
|
631029ff1f
|
Merge class connection in with class user (nothing else inherits it anyway, and all the fields in here were only really useful to users anyway)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10460 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-09-07 22:23:03 +00:00 |
|
w00t
|
78c14ffcc5
|
Merge the second interface for socket hooking into one, so it's all done by Add/Del/GetIOHook now.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10457 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-09-07 20:07:50 +00:00 |
|
brain
|
db7a49b071
|
Move all the parameters around AGAIN. See docs shortly
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10364 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-08-31 13:00:12 +00:00 |
|
w00t
|
29237b699f
|
Save 4 bytes (assuming sizeof(ptr) == 2) per user record, storing unneeded pointers (self managed class) that nothing was ever done with.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10359 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-08-31 01:05:00 +00:00 |
|
w00t
|
5db3290d93
|
After discussions and thought, move umode +n to +s. This increases cross-ircd compat (both charybdis and unreal use +s for snomasks, others might in the future). This also decreases complexity for new users, and removes the redundancy. This means that just +s +cC for example will be required to view connects. (files to be renamed in next commit to not confuse svn).
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10074 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-07-29 16:28:37 +00:00 |
|
w00t
|
7e94b31104
|
Remove duplicated member, kept in classes.. Possible now we have a pointer. this saves (another) 4 bytes per user.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10064 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-07-21 17:11:02 +00:00 |
|
w00t
|
a67b9de174
|
Change modes in channels and users to use std::bitset instead of an array. This saves 56 bytes per channel, and 112 bytes per channel, with no loss in speed or ease of use in code. :). Thanks (VERY) much to Special for telling me about this.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10043 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-07-19 20:34:14 +00:00 |
|
w00t
|
e93827e41c
|
Fix compile. Also remove write error stuff, as that was used prior to the goodness of global culllist. This makes getting user's quit messages to them (on excess recvq etc) much easier.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10042 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-07-19 19:17:15 +00:00 |
|
w00t
|
1a307616ad
|
Use a switch (cleaner, probably more efficient) for user status here, also, we can remove another member (::timeout) that is only actually used before registration by doing a bit of addition.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10041 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-07-19 18:42:53 +00:00 |
|
w00t
|
33bc4e4863
|
Remove totally unused member, saving sizeof(unsigned int) per user record
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10040 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-07-19 18:22:09 +00:00 |
|
w00t
|
c5d8d3e3c6
|
Fix for #564
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9961 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-07-12 09:43:58 +00:00 |
|
w00t
|
c92f8ebd92
|
Add User::GetCIDRMask(int range), will be used for CIDR throttling, etc. Also probably opens up the way for /gline nickname to place CIDR bans instead of regular bans, which could be helpful. Much thanks to Om for his help.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9959 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-07-12 08:57:44 +00:00 |
|
w00t
|
b2723d2577
|
Back out the incomplete linebuffering stuff that shouldn't have been committed..
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9948 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-07-02 14:22:48 +00:00 |
|
w00t
|
f4ea51671f
|
Forward port r9946: make SVSHOLD silent to avoid useless irritation to opers
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9947 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-07-02 14:20:38 +00:00 |
|
brain
|
2be353eece
|
A few minor fixes, some copy constructor stuff, misnamed channelmanager constructor, add files to vc8 project, configreader tidyups
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9780 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-05-20 18:29:15 +00:00 |
|
brain
|
552ab1e398
|
More correctly state the lookup arrays as unsigned char, not char
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9771 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-05-19 21:29:14 +00:00 |
|
aquanight
|
4b856bda13
|
Make User:: nick/ident/dhost/fullname and some other things std::string instead of char*/char[] (MODULES DO NOT COMPILE)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9748 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-05-18 23:15:53 +00:00 |
|
w00t
|
9116764793
|
Masterful rewrite of User::AddBuffer to remove a string copy (and make more efficient) thanks to some nifty string manipulations. This should provide benefit on highly loaded nodes. This has *not* been thoroughly tested considering it's criticality, but I have spent the past ~4 hours writing and testing it, and it seems ok.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9661 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-05-07 21:53:30 +00:00 |
|
brain
|
27e2941ec9
|
Fixes for bug #515, update existing in-use connect tags on the fly in rehash
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9471 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-04-12 17:01:36 +00:00 |
|
brain
|
597ecea91e
|
Trunk fix for bug #505 reported by nenolod
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9468 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-04-12 15:48:01 +00:00 |
|
w00t
|
d75ec0e5a5
|
Patch from Brain fixing broken stuff
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9456 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-04-11 14:27:26 +00:00 |
|
brain
|
e20a091589
|
Much faster way of checking if the user is 4in6, avoid strncmp in User::GetIPString(), do it in User::SetSockAddr()
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9455 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-04-11 00:03:03 +00:00 |
|
w00t
|
d7a0cd3db1
|
Move QuitUser into UserManager class, and unstaticize it. This prepares for some benchmarking lulz on object pooling I plan to do today, as well as making more sense now we *have* a manager class
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9442 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-04-09 15:34:54 +00:00 |
|
w00t
|
d48726ce80
|
AWAY notification for WATCH. Numerics are now sent out when a user goes away (or returns from AWAY), as well as in WATCH L (if the user is online and away).
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9227 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-03-30 15:33:33 +00:00 |
|
aquanight
|
58385dd458
|
Commit -Wformat=2 -Wmissing-format-attributes, printf-like functions in inspircd now get treated like printf (meaning compile-time check goodness) in GCC
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9217 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-03-30 02:48:54 +00:00 |
|
brain
|
343f12b9b2
|
Add stuff so that modules can hook users by altering a pointer in the User class. Note that ssl modules still bind by port, but the idea of doing this change is so we can remove that logic next
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9187 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-03-24 15:13:17 +00:00 |
|
brain
|
20680f9c49
|
This should save 128 bytes per user for non-opers. Well worth it imho for a reasonably large amount of unused ram.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9179 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-03-23 21:12:36 +00:00 |
|
aquanight
|
743c10e4ca
|
Add ability to control what opertypes can set what operonly user/chan modes. This works the same way as commands, in that modes allowed by classes are added together, and * allows all.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9176 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-03-23 20:43:35 +00:00 |
|
brain
|
9ee525bec5
|
Add WriteNumeric() to User and OnNumeric module event. Note that modules do not change the numeric text on the fly, as this involves needless allocations for numerics that arent being changed, so instead they block the original numeric and send out their own when needed.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9174 e03df62e-2008-0410-955e-edbf42e46eb7
|
2008-03-22 11:45:57 +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
|
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
|
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 |
|
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
|
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
|
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
|
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
|
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 |
|