summaryrefslogtreecommitdiff
path: root/src/inspsocket.cpp
AgeCommit message (Collapse)Author
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
2010-01-21Remove unneeded save of errnodanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12309 e03df62e-2008-0410-955e-edbf42e46eb7
2010-01-19ERROR is not a valid log level, so all these messages were getting droppeddanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12304 e03df62e-2008-0410-955e-edbf42e46eb7
2010-01-14Fix stripping of character prior to delimiter in StreamSocket::GetNextLine ↵danieldg
(not noticed because it was usually \r) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12257 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-11-13Get rid of socklen_t parameter to Bind, we are using C++ here and can do it ↵danieldg
other ways git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12129 e03df62e-2008-0410-955e-edbf42e46eb7
2009-11-12Fix double-cull of users quitting due to connection errordanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12105 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-24Catch exceptions in inspsocket callbacksdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11966 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-22Make irc::sockets::* parameters consistent, add irc::sockets::maskdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11953 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-21Kill ListenSocketBase, use OnAcceptConnection for all new connectionsdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11950 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-10-12Correct the will-block prediction on partial writev() returndanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11849 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-12Define DISABLE_WRITEV and use the IOHook single-copy method for Windows send()danieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11848 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-10* Fix inspsocket to not include uio.h on windows.peavey
* Wrap writev and some structs to fix inspsocket compile on win. * Fix a few compile errors due to latest trunk changes in win32wrapper code. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11822 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-09Move autoconnect next-server to TreeSocket::cull, and drop autoconnect ↵danieldg
reference once a connection is complete git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11811 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-03Fix crash due to null address in DNSdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11797 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-28Fix compile errors on BSDdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11773 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-27SendQ bugfixesdanieldg
Fix DoWrite running on errored sockets Add testnet module for sendq and shutdown testing Prevent DoWrite from trying to write when writes are blocking git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11768 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-26Compile fixes and message updatesdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11767 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-26Add FD_WANT_SINGLE_WRITE to efficiently replace FD_WANT_POLL_WRITEdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11762 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-26Clean up SocketEngine interface to allow edge-triggered I/O and sockets that ↵danieldg
do not force readability. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11760 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-21Improve speed of SSL sendq processingdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11756 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-21Don't try to write to dead users, add debug to SquitServer, and remove a ↵danieldg
string copy in spanningtree write git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11753 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-13Change Extensible to use strongly typed entriesdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11696 e03df62e-2008-0410-955e-edbf42e46eb7