aboutsummaryrefslogtreecommitdiff
path: root/src/socketengines/socketengine_ports.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Remove support for the Solaris IOCP socket engine.Gravatar Peter Powell2017-10-221-173/+0
| | | | | | | | | | After discussing this with Adam we have decided that there is very little point in keeping this now that Solaris has been killed. Any legacy Solaris users will have to make do with poll. This change does not affect users of Solaris forks like Illumos as they have support for epoll which will have already been selected over Solaris IOCP by configure.
* Improve and centralize socket engine event counters.Gravatar Robin Burchell2017-07-111-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | The write counters were close to useless because they were only incremented on a write "event" which is only triggered when writing would block. Read handling was a little more useful in that all reads must happen through the socket engine, so these were happening at the correct time, but we can clean this up by doing it in the SE itself rather than each platform port. This means that both read and write events are now easily and usefully defined as "a syscall of either read or write was attempted". We also count empty read and write events as being an event, because they still were an attempt to poll a socket in some way. This may help to identify "bad" code which is repeatedly trying to read a socket for some reason. Lastly, we check for failed read/write calls, and log them as an error event. A lot of the time, this is how sockets are determined as being disconnected (ie. at read/write time). While we're at it, split Update() in two to make the calls more self-describing. This has no real impact since only one call is made at a time anyway.
* Dispatch EventHandler events to dedicated virtual functionsGravatar Attila Molnar2015-04-121-2/+2
| | | | Remove enum EventType
* Kill needless #includes in source filesGravatar Attila Molnar2014-06-141-4/+0
|
* Change the number reported by SocketEngine::GetMaxFds() to be informalGravatar Attila Molnar2014-06-071-11/+3
| | | | Do not exit if we can't determine it
* Relax fd bounds checkingGravatar Attila Molnar2014-06-071-2/+2
| | | | We can cope with fds greater than SocketEngine::GetMaxFds() since 3752b3f59d5216d7dc6221a361efc76b9ad2273d
* Store the EventHandler* in the kevent/epoll_event/portev structGravatar Attila Molnar2014-02-091-2/+2
| | | | This removes the need to call GetRef() for every socket in DispatchEvents()
* Change all socketengine methods to be staticGravatar Attila Molnar2014-02-081-29/+20
|
* Move socketengine stats into a new classGravatar Attila Molnar2014-02-081-3/+3
|
* Update SocketEngine::CurrentSetSize in AddFdRef()/DelFdRef()Gravatar Attila Molnar2014-02-081-3/+0
|
* Rename SocketEngine::AddFd() and DelFd() to AddFdRef() and DelFdRef()Gravatar Attila Molnar2014-02-081-2/+2
|
* Replace SocketEngine::GetName() with INSPIRCD_SOCKETENGINE_NAME defineGravatar Attila Molnar2014-02-081-6/+0
|
* Fix oversight in 3752b3f59d5216d7dc6221a361efc76b9ad2273dGravatar Attila Molnar2014-02-051-5/+7
|
* Coding style changes in socketenginesGravatar Adam2014-02-041-9/+1
|
* New socketengine stuff:Gravatar Adam2014-02-041-44/+36
| | | | | Use vectors that grow as necessary instead of mass allocating everything at once Rework poll engine logic to make sense
* Merge insp20Gravatar attilamolnar2013-08-301-2/+2
|\
| * Fix low risk crash when we can't determine maximum open socket count.Gravatar Peter Powell2013-07-071-2/+2
| |
* | Fix spacing in calls to LogManager::Log.Gravatar Peter Powell2013-05-191-4/+4
| |
* | Add LOG_ prefix to the log level enum values.Gravatar Peter Powell2013-04-121-5/+5
| |
* | Merge inspircd_{config,version}.h into a single header file.Gravatar Peter Powell2013-04-051-1/+0
|/
* Fix errors in socketengine_ports so it compiles on SolarisGravatar attilamolnar2012-12-211-9/+9
| | | | Thanks to fraggeln for reporting and testing
* Replace printf(_c) with iostreamGravatar ChrisTX2012-10-141-3/+4
|
* Fix Doxygen syntax errors.Gravatar Peter Powell2012-07-051-1/+0
|
* Replace copyright headers with headers granting specific authors copyrightGravatar Robby-2012-04-191-8/+15
|
* Fixes for bug #12Gravatar Justin Crawford2012-04-141-2/+2
|
* Remove bad return statement - noticed by zynox, thanksGravatar Jackmcbarn2011-01-041-1/+0
|
* DelFd should not fail, it will leave a bad dangling pointer in that caseGravatar danieldg2010-03-021-3/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12584 e03df62e-2008-0410-955e-edbf42e46eb7
* Don't send events for removed FDs when both read and write are readyGravatar danieldg2010-03-021-12/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12582 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove excessive gettimeofday system callsGravatar danieldg2010-01-181-0/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12293 e03df62e-2008-0410-955e-edbf42e46eb7
* ...because every now and again, i have to do a massive commit.Gravatar brain2010-01-111-2/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12248 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove include/inspircd_se_config.h and socketengine-specific headersGravatar danieldg2009-09-301-1/+59
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11784 e03df62e-2008-0410-955e-edbf42e46eb7
* Add FD_WANT_SINGLE_WRITE to efficiently replace FD_WANT_POLL_WRITEGravatar danieldg2009-09-261-2/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11762 e03df62e-2008-0410-955e-edbf42e46eb7
* Clean up SocketEngine interface to allow edge-triggered I/O and sockets that ↵Gravatar danieldg2009-09-261-39/+46
| | | | | | do not force readability. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11760 e03df62e-2008-0410-955e-edbf42e46eb7
* Create StreamSocket for IO hooking implementationGravatar danieldg2009-09-211-3/+3
| | | | | | | | | | | | | | 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
* Update all wiki links to point to the new wiki. This was done automatically ↵Gravatar psychon2009-03-151-1/+1
| | | | | | | | | 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
* Update copyrights for 2009.Gravatar w00t2009-01-021-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10932 e03df62e-2008-0410-955e-edbf42e46eb7
* These socket engines may now recieve write and read events in the same ↵Gravatar w00t2008-09-111-1/+1
| | | | | | cycle, same as select and poll. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10514 e03df62e-2008-0410-955e-edbf42e46eb7
* Patch from Brain: set MAX_DESCRIPTORS for all socket engines (I missed this)Gravatar w00t2008-04-071-0/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9394 e03df62e-2008-0410-955e-edbf42e46eb7
* Automatic detection and allocation of max fds. No longer needs recompile to ↵Gravatar brain2008-04-021-6/+28
| | | | | | | | | change, just adjust it in your kernel or whatever and restart insp. Please note that select and iocp socket engines do not support detection and are always set to FD_SETSIZE and 10240 descriptors respectively. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9263 e03df62e-2008-0410-955e-edbf42e46eb7
* Convert remaining InspIRCd::Log() calls to new logging systemGravatar aquanight2008-02-221-4/+4
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9001 e03df62e-2008-0410-955e-edbf42e46eb7
* Keep count of the number of events in total, and seperate read, write and ↵Gravatar brain2008-02-141-0/+6
| | | | | | error event counters. We can use this for monitoring of heavy socket engine activity, e.g. a 'stuck' eventhandler git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8933 e03df62e-2008-0410-955e-edbf42e46eb7
* Header update: 2007 -> 2008Gravatar w00t2008-01-101-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8694 e03df62e-2008-0410-955e-edbf42e46eb7
* Move socketengines into their own dir. This was all w00t's idea, but i told ↵Gravatar brain2007-10-231-0/+129
him no because i didnt think it would work. Now ive done it myself :P ner ner ne ner ner :) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8332 e03df62e-2008-0410-955e-edbf42e46eb7