aboutsummaryrefslogtreecommitdiff
path: root/src/socketengines/socketengine_epoll.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Remove unnecessary prefix from socketengine source files.Gravatar Sadie Powell2021-03-051-226/+0
|
* Merge branch 'insp3' into master.Gravatar Sadie Powell2021-03-051-1/+1
|\
| * Update copyright headers.Gravatar InspIRCd Robot2021-03-051-1/+1
| |
* | Merge branch 'insp3' into master.Gravatar Sadie Powell2021-02-281-1/+1
|\|
| * Update copyright headers.Gravatar InspIRCd Robot2021-02-261-1/+1
| |
* | Merge branch 'insp3' into master.Gravatar Sadie Powell2020-01-171-2/+10
|\|
| * Update copyright headers.Gravatar InspIRCd Robot2020-01-111-2/+10
| |
* | Merge branch 'insp3' into master.Gravatar Sadie Powell2019-05-151-1/+1
|\|
| * epoll: use a default list size of 16 to match other socket engines.Gravatar Peter Powell2019-05-141-1/+1
| |
* | LogManager: remove fakederef.Gravatar Sadie Powell2019-02-071-7/+7
|/
* Deduplicate error handling in the socket engines.Gravatar Peter Powell2017-10-221-10/+1
|
* Convert GetMaxFds() to size_t and deduplicate setting code.Gravatar Peter Powell2017-10-221-6/+1
|
* Merge pull request #1337 from SaberUK/master+mergeGravatar Peter Powell2017-07-121-3/+7
|\ | | | | Merge v2.0.23 and v2.0.24 into master.
| * Merge v2.0.23 and v2.0.24 into master.Gravatar Peter Powell2017-07-091-3/+7
| |\
| | * socketengine_epoll: use getrlimit not ulimitGravatar Adam2016-11-221-4/+5
| | |
| | * socketengine_epoll Initialize CurrentSetSize (only used by m_httpd_stats)Gravatar Attila Molnar2014-02-051-0/+1
| | |
* | | 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.
* | socketengine_epoll Remove unused #define EP_DELAY 5Gravatar Attila Molnar2016-08-111-1/+0
| |
* | Dispatch EventHandler events to dedicated virtual functionsGravatar Attila Molnar2015-04-121-4/+4
| | | | | | | | Remove enum EventType
* | Kill needless #includes in source filesGravatar Attila Molnar2014-06-141-4/+1
| |
* | Change the number reported by SocketEngine::GetMaxFds() to be informalGravatar Attila Molnar2014-06-071-11/+2
| | | | | | | | Do not exit if we can't determine it
* | socketengine_epoll Pass a dummy value to epoll_create() that does not depend ↵Gravatar Attila Molnar2014-06-071-2/+3
| | | | | | | | | | | | | | on GetMaxFds() From man epoll: Since Linux 2.6.8, the size argument is unused, but must be greater than zero. (The kernel dynamically sizes the required data structures without needing this initial hint.)
* | Relax fd bounds checkingGravatar Attila Molnar2014-06-071-4/+4
| | | | | | | | 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-10/+7
| | | | | | | | This removes the need to call GetRef() for every socket in DispatchEvents()
* | Change all socketengine methods to be staticGravatar Attila Molnar2014-02-081-30/+18
| |
* | Move socketengine stats into a new classGravatar Attila Molnar2014-02-081-5/+5
| |
* | 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
| |
* | Move variables in socketenginesGravatar Attila Molnar2014-02-081-2/+2
| | | | | | | | Move timespec to DispatchEvents() in kqueue, there is no reason for it to be a member variable
* | Replace SocketEngine::GetName() with INSPIRCD_SOCKETENGINE_NAME defineGravatar Attila Molnar2014-02-081-6/+0
| |
* | socketengine_epoll Remove needless initialization of epoll_event when ↵Gravatar Attila Molnar2014-02-051-2/+3
| | | | | | | | removing an fd
* | Fix oversight in 3752b3f59d5216d7dc6221a361efc76b9ad2273dGravatar Attila Molnar2014-02-051-1/+3
| |
* | Coding style changes in socketenginesGravatar Adam2014-02-041-3/+3
| |
* | New socketengine stuff:Gravatar Adam2014-02-041-22/+21
| | | | | | | | | | 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-10/+10
| |
* | Add LOG_ prefix to the log level enum values.Gravatar Peter Powell2013-04-121-11/+11
|/
* Replace printf(_c) with iostreamGravatar ChrisTX2012-10-141-3/+4
|
* epoll: make sure EPOLLET flag does not get clobberedGravatar William Pitcock2012-05-201-4/+4
| | | | | EPOLLET is the highest bit, so storing EPOLLET in a signed value leads to undefined behaviour.
* Replace copyright headers with headers granting specific authors copyrightGravatar Robby-2012-04-191-8/+15
|
* DelFd should not fail, it will leave a bad dangling pointer in that caseGravatar danieldg2010-03-021-7/+5
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12584 e03df62e-2008-0410-955e-edbf42e46eb7
* Log duplicate UUID events a bit betterGravatar danieldg2010-03-021-0/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12580 e03df62e-2008-0410-955e-edbf42e46eb7
* When we get events on unknown file descriptors, unregister them rather than ↵Gravatar danieldg2010-02-111-0/+4
| | | | | | spinning at 100% CPU git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12436 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-1/+1
| | | | 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/+33
| | | | 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-4/+16
| | | | 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-63/+65
| | | | | | 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-4/+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