danieldg
8ed74be517
Fix crash due to null address in DNS
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11797 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-03 04:08:20 +00:00
danieldg
8456cf5ccd
Fix valgrind issues and crashes on exit
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11794 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-02 03:15:46 +00:00
danieldg
3dc81ee133
Add explicit reference-counting base class
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11785 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-30 21:55:21 +00:00
danieldg
7107ec12d8
Flexible SendQ
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11766 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-26 16:41:07 +00:00
danieldg
6d03943426
Remove InspIRCd* parameters and fields
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11763 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-26 14:13:13 +00:00
danieldg
e2af2347fc
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
2009-09-21 13:26:31 +00:00
danieldg
a068c47d71
Separate spy channels [jackmcbarn]
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11747 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-18 17:07:13 +00:00
danieldg
d9e3bb8d43
Remove redundant ServerInstance* fields
...
It has been impossible to have more than one InspIRCd* object in the
same address space for some time now, and this feature was never used.
This formalizes class InspIRCd as a singleton object.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11703 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13 20:31:54 +00:00
danieldg
91df762e93
Membership* changes
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11697 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13 20:30:47 +00:00
danieldg
6d57bbe05c
Change Extensible to use strongly typed entries
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11696 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13 20:30:25 +00:00
danieldg
94a601fb3b
Rip out VisData in preparation for replacing it with more flexible hooks
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11640 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02 00:50:43 +00:00
danieldg
1662f21eed
Remove now-unused quitmsg/operquitmsg fields from User
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11637 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02 00:50:21 +00:00
danieldg
b31f343eac
Remove unneeded Extensible inheritance and remove "age" field from classbase
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11611 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02 00:46:11 +00:00
danieldg
6e85701ecb
Remove a few unneeded string copies in the PRIVMSG path
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11606 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02 00:45:29 +00:00
danieldg
cfa482e186
Add User::DoHostCycle
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11604 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02 00:45:16 +00:00
danieldg
7a672d42e4
Remove more text<->binary IP conversions, making code more IPv4/IPv6 independent
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11578 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-01 15:07:36 +00:00
danieldg
6278262baa
Rename User::GetPort to GetServerPort to clarify its purpose
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11577 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-01 15:07:27 +00:00
danieldg
5f4095e595
Change IP address storage in User to use more IPv4/IPv6 common code
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11575 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-01 15:07:11 +00:00
danieldg
0036e3a70c
Fixes for config reader
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11504 e03df62e-2008-0410-955e-edbf42e46eb7
2009-08-12 18:03:52 +00:00
w00t
7c2334ddd6
Roll back mysterious DNS change from 2007 which broke multiple-answer
...
DNS requests (CNAME, A). It looks like this was to be related to bitmask
dnsbl support, but it would never have worked anyway (resultnum was always 0..).
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11419 e03df62e-2008-0410-955e-edbf42e46eb7
2009-06-30 13:59:27 +00:00
danieldg
5d6dcb9919
Make User::ServerInstance public so that FakeUser can access it. There is no reason to make this private, really
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11382 e03df62e-2008-0410-955e-edbf42e46eb7
2009-05-13 20:57:49 +00:00
danieldg
6dd331262a
Create subclass of User for FakeClient, to allow for use as command source
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11375 e03df62e-2008-0410-955e-edbf42e46eb7
2009-05-13 05:27:39 +00:00
w00t
71f7e47bcd
Remove FindDescriptor wrapper for GetRef, it doesn't do anything useful and in fact is a bit harmful in some ways as we've seen..
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11364 e03df62e-2008-0410-955e-edbf42e46eb7
2009-05-06 22:27:51 +00:00
psychon
b6dbd6caab
Update all wiki links to point to the new wiki. This was done automatically with the following command, only .Makefile.inc got some indent fixups by hand.
...
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
2009-03-15 12:42:35 +00:00
peavey
f209cce90b
Nuke trailing spaces
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11105 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-14 21:14:36 +00:00
w00t
43847ec9c7
Update copyrights for 2009.
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10932 e03df62e-2008-0410-955e-edbf42e46eb7
2009-01-02 18:16:05 +00:00
w00t
a23a840749
Rip flood/threshold out of config classes also.
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10839 e03df62e-2008-0410-955e-edbf42e46eb7
2008-12-01 20:14:50 +00:00
w00t
be2a677ddd
Remove lines_in and reset_due flood protection mechanism, recvq/sendq on their own now fill this role, as we have proper penalties.
...
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
2008-12-01 20:14:49 +00:00
w00t
9994478a85
Remove m_operflood, add privs: users/flood/no-throttle & users/flood/increased-buffers.
...
This also saves another sizeof(bool) per user.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10837 e03df62e-2008-0410-955e-edbf42e46eb7
2008-12-01 18:10:24 +00:00
w00t
fc7eba500a
Remove OverPenalty, saves sizeof(bool) per user.
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10836 e03df62e-2008-0410-955e-edbf42e46eb7
2008-12-01 18:10:22 +00:00
w00t
e79930ac02
Remove one (now unneeded) 4in6 hack.
...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10744 e03df62e-2008-0410-955e-edbf42e46eb7
2008-10-28 23:20:28 +00:00
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