summaryrefslogtreecommitdiff
path: root/include/inspsocket.h
AgeCommit message (Collapse)Author
2018-10-25Store the type of a StreamSocket within itself.Peter Powell
Similar to with IOHooks this allows you to convert StreamSocket to a UserIOHandler quickly.
2018-10-21Fix warnings from Doxygen.Peter Powell
2018-07-26Add a module which implements the HAProxy PROXY v2 protocol.Peter Powell
2017-11-21Add the override keyword in places that it is missing.Peter Powell
GCCs warnings for this are much better than Clangs.
2017-11-17Fix a ton of -Wsign-conversion warnings.Peter Powell
2017-08-26Fix a bunch of Doxygen warnings.Peter Powell
2017-07-12Add CXX11_OVERRIDE to overridden members that lack it.Peter Powell
This fixes a ton of warnings when building on compilers that default to C++11 or newer.
2016-08-08Add StreamSocket::SendQueue::moveall() for moving data between sendqsAttila Molnar
2016-08-08Add support for multiple IOHooks per StreamSocketAttila Molnar
2016-08-08Extract code that reads data into a recvq from StreamSocket::DoRead() into ↵Attila Molnar
ReadToRecvQ()
2016-08-08Extract code that flushes the sendq from StreamSocket::DoWrite() into ↵Attila Molnar
FlushSendQ()
2016-08-08Add StreamSocket::GetModHook() for obtaining the IOHook belonging to a given ↵Attila Molnar
module Use it to simplify logic in all modules using or providing IOHooks
2015-06-06Convert all code to use StreamSocket::SendQueueAttila Molnar
Let OnStreamSocketWrite see the entire sendq instead of one element at a time
2015-06-06Add class StreamSocket::SendQueueAttila Molnar
2015-04-12Change StreamSocket::DoRead() and DoWrite() to be non-virtual, make DoRead() ↵Attila Molnar
private
2015-04-12Dispatch EventHandler events to dedicated virtual functionsAttila Molnar
Remove enum EventType
2014-07-10Remove current time parameter of the Timer constructorAttila Molnar
2013-06-07Create IOHook interface (extracted from Module)attilamolnar
2013-04-21Timer changes and TimerManager enhancementsattilamolnar
Timer::Tick() now has a bool return value: if false is returned the timer is deleted using operator delete, otherwise, if it's a repeating timer then it's rescheduled (readded) Timers are removed from the TimerManager automatically at destruction Timers are now stored in a multimap instead of a sorted vector
2013-04-12Tidy up source files:Peter Powell
- Use #pragma once instead of include guards. - Move header files in src/modules to include/modules. - Fixed various spacing issues.
2013-01-16Fix warning: "const type qualifier on return type has no effect".Peter Powell
2012-07-05Fix Doxygen syntax errors.Peter Powell
2012-04-19Replace copyright headers with headers granting specific authors copyrightRobby-
2012-04-14Fix some of the include guard names (requested by SaberUK)Justin Crawford
2012-04-14Fixes for bug #12Justin Crawford
2010-01-17Fix for incorrect template application by GCC 3.4danieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12285 e03df62e-2008-0410-955e-edbf42e46eb7
2010-01-11...because every now and again, i have to do a massive commit.brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12248 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-25Force heap allocation of refcountbase, create usecountbase for ↵danieldg
non-allocation reference counting git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11978 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-17Make classbase and refcountbase uncopyable; expand comments on their ↵danieldg
indended uses git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11888 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-30Add explicit reference-counting base classdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11785 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-21Create StreamSocket for IO hooking implementationdanieldg
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-01Remove unneeded #ifdef IPV6 linesdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11582 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-15Update all wiki links to point to the new wiki. This was done automatically ↵psychon
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-09Rewrite BufferedSocket::BindAddr to actually make sense, and not infinite ↵w00t
loop under some conditions, etc. This also splits a lot of it into DoBindMagic(), for readability. Seems to work okay on an invalid bind and nonexistant bind.. Fixes bug #754, reported by HiroP and Indoril. Fix FD leak in some circumstances: if bind fails hard (requested address couldn't be bound), Close() the socket. Also fixes a deficiency of the previous commit in that if one address failed to bind, the FD would be invalidated. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11189 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-14Nuke trailing spacespeavey
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11105 e03df62e-2008-0410-955e-edbf42e46eb7
2009-01-02Update copyrights for 2009.w00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10932 e03df62e-2008-0410-955e-edbf42e46eb7
2008-09-21Be consistent. Use ServerInstance in all places instead of 'Instance' in ↵w00t
half. This has bugged me forever :p. I think I got all of extra/ too.. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10579 e03df62e-2008-0410-955e-edbf42e46eb7
2008-09-13Remove unneeded namespace stuff.w00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10535 e03df62e-2008-0410-955e-edbf42e46eb7
2008-09-12Minor style tidyup.w00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10533 e03df62e-2008-0410-955e-edbf42e46eb7
2008-09-12Cleanup of some internals. Tested via m_httpd.w00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10527 e03df62e-2008-0410-955e-edbf42e46eb7
2008-09-11Remove some duplication, everything calls the SE equivilant anyway.w00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10525 e03df62e-2008-0410-955e-edbf42e46eb7
2008-09-11Remove useless parameter.w00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10524 e03df62e-2008-0410-955e-edbf42e46eb7
2008-09-11Fix a comment.w00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10523 e03df62e-2008-0410-955e-edbf42e46eb7
2008-09-11There is absolutely no need to cache connect timeout.w00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10512 e03df62e-2008-0410-955e-edbf42e46eb7
2008-09-11Remove an unused member.w00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10511 e03df62e-2008-0410-955e-edbf42e46eb7
2008-09-11Remove WaitingForWriteEvent, it seems to do *nothing* except confuse things. ↵w00t
Also, don't close socket on http if FlushWriteBuf doesn't write it all in one go, in fact, don't try FlushWriteBuf at all - use the sockets default of waiting to be told it's safe to write data. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10509 e03df62e-2008-0410-955e-edbf42e46eb7
2008-09-09Remove a totally redundant method (this is already available via inheritance ↵w00t
from EventHandler) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10490 e03df62e-2008-0410-955e-edbf42e46eb7
2008-09-08Remove listening from BufferedSocket, it's bloaty and horrid. We have a ↵w00t
ListenSocketBase class to handle this instead now. :) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10470 e03df62e-2008-0410-955e-edbf42e46eb7
2008-07-12Remove individual read buffers inside of BufferedSocket, use the shared ↵w00t
netbuffer instead, like users. This means a 65kb saving per BufferedSocket. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9960 e03df62e-2008-0410-955e-edbf42e46eb7
2008-04-01Remove call to FlushWriteBuffer from BufferedSocket::Write(), this means we ↵w00t
don't try write() pointlessly when we may very well not (chewing CPU), and instead waits for the socketengine to tell us we can write. Tested, works fine. (nothing used this return value anyway) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9247 e03df62e-2008-0410-955e-edbf42e46eb7