summaryrefslogtreecommitdiff
path: root/src/inspsocket.cpp
AgeCommit message (Collapse)Author
2016-08-08Add support for multiple IOHooks per StreamSocketAttila Molnar
2016-08-08Call StreamSocket::OnDataReady() from only one placeAttila Molnar
Call it whenever the recvq gets bigger than it was before the read
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
2016-08-08Pass sendq to OnStreamSocketWriteAttila Molnar
2015-06-06Clean up indent in StreamSocket::DoWrite()Attila Molnar
2015-06-06Call OnStreamSocketWrite() once per write eventAttila Molnar
Do sendq flattening in SSL modules, move code for it into class SSLIOHook from core
2015-06-06Convert all code to use StreamSocket::SendQueueAttila Molnar
Let OnStreamSocketWrite see the entire sendq instead of one element at a time
2015-04-15Remove exception handling from StreamSocket methods calling IOHooksAttila Molnar
IOHooks don't throw exceptions
2015-04-12Dispatch EventHandler events to dedicated virtual functionsAttila Molnar
Remove enum EventType
2015-03-04Use the native IOVector type in StreamSocket::DoWrite()Attila Molnar
2015-03-04Remove DISABLE_WRITEV and StreamSocket code for platforms lacking writev() ↵Attila Molnar
support
2015-03-04Add SocketEngine::WriteV()Attila Molnar
2015-01-10Store iovec array on the stack instead of heap allocating it for the ↵Attila Molnar
lifetime of writev() in StreamSocket::DoWrite()
2015-01-10Remove pointless fd == INT_MAX check from StreamSocket::DoWrite()Attila Molnar
2015-01-10Remove some unnecessary NULL checksAttila Molnar
2015-01-10Reduce std::string::substr() usageAttila Molnar
substr() returns a new string while erase() and assign() modify the existing one
2014-07-10Remove current time parameter of the Timer constructorAttila Molnar
2014-06-14Kill needless #includes in source filesAttila Molnar
2014-03-15Change allocation of InspIRCd::Timers to be physically part of the object ↵Attila Molnar
containing it
2014-02-09Call DelFd() and SetFd(-1) from SocketEngine::Close(EventHandler*)Attila Molnar
2014-02-08Change all socketengine methods to be staticAttila Molnar
2014-02-08Change SocketEngine functions that do not require an instance to be staticAttila Molnar
2014-01-30Allow Timers to delete themselves in Tick()Attila Molnar
2014-01-23Remove whitespace and minor style changesAttila Molnar
2014-01-22Split IOHook into IOHook and IOHookProviderAttila Molnar
Create one IOHook instance for each hooked socket which contains all the hook specific data and read/write/close functions, removing the need for the "issl_session" array in SSL modules. Register instances of the IOHookProvider class in the core and use them to create specialized IOHook instances (OnConnect/OnAccept). Remove the OnHookIO hook, add a dynamic reference to ListenSocket that points to the hook provider (if any) to use for incoming connections on that socket. For outgoing connections modules still have to find the IOHookProvider they want to use themselves but instead of calling AddIOHook(hookprov), now they have to call IOHookProvider::OnConnect() after the connection has been established.
2013-12-18Clean up CoreExceptionAttila Molnar
- Remove default constructor - Replace virtual functions returning C strings with functions returning const std::string refs
2013-08-30Merge insp20attilamolnar
2013-07-14Use the correct socket related error messages on WindowsAdam
2013-07-07Do not send too much data over SSL in one goattilamolnar
Some clients fail to read it entirely and the remaining data stays in their read buffer until new data arrives
2013-06-07Create IOHook interface (extracted from Module)attilamolnar
2013-05-19Fix spacing in calls to LogManager::Log.Peter Powell
2013-04-28Merge insp20attilamolnar
2013-04-26Modularize DNSAdam
The DNS modules are temporarily in commands/ so they're loaded automatically Thanks to Attila for helping with much of this.
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-16Fix m_ssl_gnutls and perhaps some other things on Windows by recognizing ↵Adam
WSAEWOULDBLOCK
2013-04-12Add LOG_ prefix to the log level enum values.Peter Powell
2012-11-06Fix incorrect substr usagenewuser1
2012-10-14Remove IncreaseOSBuffers() completelyattilamolnar
2012-10-13Remove no-op call to IncreaseOSBuffers() from BufferedSocket::BeginConnect()attilamolnar
2012-05-28Use socketengine functions for sending and receiving data instead of plain ↵attilamolnar
send() and recv() so /STATS z displays correct bandwidth usage
2012-04-19Replace copyright headers with headers granting specific authors copyrightRobby-
2011-04-10Fixed Windows build on VS 2010Adam
2010-03-27Block writes to pending-connect socketDaniel De Graaf
2010-03-02Fix some more incorrect socket usedanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12585 e03df62e-2008-0410-955e-edbf42e46eb7
2010-03-02Don't try quite so hard to writev() the entire buffer in one godanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12583 e03df62e-2008-0410-955e-edbf42e46eb7
2010-02-15Dump sendq before closing socketdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12469 e03df62e-2008-0410-955e-edbf42e46eb7
2010-02-03Delink servers using an SSL module that is being reloadeddanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12367 e03df62e-2008-0410-955e-edbf42e46eb7
2010-02-01Correctly abort attempted socket writes on errordanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12340 e03df62e-2008-0410-955e-edbf42e46eb7