34 Commits

Author SHA1 Message Date
danieldg
5fd6471070 Detect, complain, and don't crash when objects are inserted into cull list twice
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11782 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-30 16:28:43 +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
db7cc57f44 Move user quit logic out of cull list
This changes the cull list from a list of User* that ran special cleanup
to a list of classbase* that simply deletes the objects.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11636 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-02 00:50:12 +00:00
danieldg
e988ac11a2 Fix CullList to not use O(n^2) version of vector clear
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11312 e03df62e-2008-0410-955e-edbf42e46eb7
2009-04-17 21:47:30 +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
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
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
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
e4acbc95b8 Header update: 2007 -> 2008
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8694 e03df62e-2008-0410-955e-edbf42e46eb7
2008-01-10 13:27:07 +00:00
w00t
ae888e9cf9 Remove some unnecessary headers from places, commit working BanCacheManager skeleton. Work in progress, ignore it for now. Doesn't do anything, either.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8487 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04 00:44:28 +00:00
w00t
b57c7f4e46 In the grand tradition of huge fucking commits:
- chanrec -> Channel
 - userrec -> User
Enjoy.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8204 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-15 20:59:05 +00:00
peavey
f2acdbc382 OOPS! We try again, since I'm smoking craq. LF is 0x0a NOT CR.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7456 e03df62e-2008-0410-955e-edbf42e46eb7
2007-07-16 17:30:04 +00:00
peavey
bab14f0dd2 'svn propset -R svn:eol-style CR *' Set to UNIX-style always. Binaries are auto skipped by svn.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7454 e03df62e-2008-0410-955e-edbf42e46eb7
2007-07-16 17:14:45 +00:00
brain
9a7826b0e8 Comments
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7372 e03df62e-2008-0410-955e-edbf42e46eb7
2007-06-17 18:10:34 +00:00
w00t
9cf56d917d Windows support. Tested and working to compile on freebsd and linux. Next step is to make sure it actually works in windows too. ;p. Add Burlex to contributors.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7043 e03df62e-2008-0410-955e-edbf42e46eb7
2007-05-19 15:56:42 +00:00
brain
edd95854ed Add options:quietbursts, fixes bug #269, also adds support for quits in a cull list which do not generate a quit snotice
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6883 e03df62e-2008-0410-955e-edbf42e46eb7
2007-05-04 22:37:11 +00:00
brain
b790abb154 This properly fixes options:hidebans and options:hidesplits by providing the facility to have two different quit messages for a user, one an oper sees and one a normal user sees.
There are default values on the oper_quit parameters through the entire source so that if oper_quit parameter is not given it defaults to the same as the user_quit


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6630 e03df62e-2008-0410-955e-edbf42e46eb7
2007-03-06 13:49:34 +00:00
peavey
9a52a66716 Move quitting of clients to a central Cull List, and do quitting outside userrec and in main loop.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6497 e03df62e-2008-0410-955e-edbf42e46eb7
2007-02-05 20:08:51 +00:00
w00t
696ee9ff66 And now, just to force you to recompile the *whole* ircd.. updated headers on the headers. :p
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5998 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-15 22:18:59 +00:00
brain
5b8d2c4cab Remove a ton of <typeinfo>, <iostream>, <sstream> etc that we usually never use
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5081 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-30 09:51:50 +00:00
brain
f9636a2eff So much stuff changed in this one, i forgot most of it.
Oh yeah, main thing is ModeHandler and ModeWatcher classes now take an InspIRCd* to their constructor


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4858 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10 22:40:57 +00:00
brain
ac39617c08 Inherit just about everything from classbase
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4299 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 19:02:06 +00:00
brain
002ee20d3d Missing a changeover
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3629 e03df62e-2008-0410-955e-edbf42e46eb7
2006-03-10 12:27:15 +00:00
brain
b041a609e4 Revert to string but return a reference, should be about the same speed
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3628 e03df62e-2008-0410-955e-edbf42e46eb7
2006-03-10 12:26:14 +00:00
brain
57f498f804 Faster CullItem/CullList using strdup rather than copying a std::string
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3626 e03df62e-2008-0410-955e-edbf42e46eb7
2006-03-10 12:13:19 +00:00
brain
0cf08426b2 Speedups
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3602 e03df62e-2008-0410-955e-edbf42e46eb7
2006-03-09 20:16:43 +00:00
brain
7a3d08f06c Tidyup to pass some stuff by reference (much faster, no copy involved)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3601 e03df62e-2008-0410-955e-edbf42e46eb7
2006-03-09 20:11:07 +00:00
brain
003fa072fc Safety checking (a really really clever trick btw) in CullList, to make sure that the user we're removing IS the user that was marked for deletion X seconds ago, even if the user has since quit, to be replaced by another unfortunate wretch who was given the same pointer address (eeep)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3529 e03df62e-2008-0410-955e-edbf42e46eb7
2006-03-07 20:21:54 +00:00
brain
b477cc1c34 Made it safe to quits and nickchanges
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3379 e03df62e-2008-0410-955e-edbf42e46eb7
2006-02-28 12:07:03 +00:00
brain
1383dba43e Updated copyrights in headers etc using perl inplace edit
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2795 e03df62e-2008-0410-955e-edbf42e46eb7
2006-01-15 15:59:11 +00:00
brain
8e4d0d74e6 Added comments
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2465 e03df62e-2008-0410-955e-edbf42e46eb7
2005-12-15 11:13:08 +00:00
brain
9904b03fdd Fixed to allow remote users to be put on a cull list
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2462 e03df62e-2008-0410-955e-edbf42e46eb7
2005-12-15 10:54:42 +00:00
brain
8ed28d1f98 Added CullList class
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2458 e03df62e-2008-0410-955e-edbf42e46eb7
2005-12-15 10:30:25 +00:00