<feed xmlns='http://www.w3.org/2005/Atom'>
<title>~steering/inspircd++.git/src/socketengine.cpp, branch v3.0.0a3</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>https://www.cgit.space/~steering/inspircd++.git/atom/src/socketengine.cpp?h=v3.0.0a3</id>
<link rel='self' href='https://www.cgit.space/~steering/inspircd++.git/atom/src/socketengine.cpp?h=v3.0.0a3'/>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/'/>
<updated>2017-10-22T18:45:05Z</updated>
<entry>
<title>Deduplicate error handling in the socket engines.</title>
<updated>2017-10-22T18:45:05Z</updated>
<author>
<name>Peter Powell</name>
</author>
<published>2017-10-22T02:10:48Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=63e300ed082b82530ad5ae0949f45686746b7c9b'/>
<id>urn:sha1:63e300ed082b82530ad5ae0949f45686746b7c9b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Convert GetMaxFds() to size_t and deduplicate setting code.</title>
<updated>2017-10-22T18:44:45Z</updated>
<author>
<name>Peter Powell</name>
</author>
<published>2017-10-22T01:27:25Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=b1098712771ab823042fcf8614a706c76c2ff401'/>
<id>urn:sha1:b1098712771ab823042fcf8614a706c76c2ff401</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Improve and centralize socket engine event counters.</title>
<updated>2017-07-11T12:22:02Z</updated>
<author>
<name>Robin Burchell</name>
</author>
<published>2017-03-22T16:59:08Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=8e8b0719bf58e2d875c06698f86377189da87e16'/>
<id>urn:sha1:8e8b0719bf58e2d875c06698f86377189da87e16</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Dispatch EventHandler events to dedicated virtual functions</title>
<updated>2015-04-12T14:20:13Z</updated>
<author>
<name>Attila Molnar</name>
</author>
<published>2015-04-12T14:20:13Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=612384b3d46d06eea6fd71ee6dc60471d0f9e3d1'/>
<id>urn:sha1:612384b3d46d06eea6fd71ee6dc60471d0f9e3d1</id>
<content type='text'>
Remove enum EventType
</content>
</entry>
<entry>
<title>Add SocketEngine::WriteV()</title>
<updated>2015-03-04T19:18:37Z</updated>
<author>
<name>Attila Molnar</name>
</author>
<published>2015-03-04T19:18:37Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=e0e1becc2f9129203966e69b2919582c11ab86f7'/>
<id>urn:sha1:e0e1becc2f9129203966e69b2919582c11ab86f7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge insp20</title>
<updated>2014-07-25T10:05:40Z</updated>
<author>
<name>Attila Molnar</name>
</author>
<published>2014-07-25T10:05:40Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=f62654a6859998f9d63eb22702c572d5ebcff15c'/>
<id>urn:sha1:f62654a6859998f9d63eb22702c572d5ebcff15c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Relax fd bounds checking</title>
<updated>2014-06-07T11:30:14Z</updated>
<author>
<name>Attila Molnar</name>
</author>
<published>2014-06-07T11:30:14Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=30fec322809582f91be70cc1bb16c9678180db76'/>
<id>urn:sha1:30fec322809582f91be70cc1bb16c9678180db76</id>
<content type='text'>
We can cope with fds greater than SocketEngine::GetMaxFds() since 3752b3f59d5216d7dc6221a361efc76b9ad2273d
</content>
</entry>
<entry>
<title>Filter out newlines from error messages on Windows</title>
<updated>2014-04-12T20:51:10Z</updated>
<author>
<name>Attila Molnar</name>
</author>
<published>2014-04-12T20:51:10Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=c17463bcae75a9f9b7108807745ec7bb2d472514'/>
<id>urn:sha1:c17463bcae75a9f9b7108807745ec7bb2d472514</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Call DelFd() and SetFd(-1) from SocketEngine::Close(EventHandler*)</title>
<updated>2014-02-09T16:17:04Z</updated>
<author>
<name>Attila Molnar</name>
</author>
<published>2014-02-09T16:17:04Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=4ec65c6231df9fcb38210f9b885cdf73b72cc176'/>
<id>urn:sha1:4ec65c6231df9fcb38210f9b885cdf73b72cc176</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Change all socketengine methods to be static</title>
<updated>2014-02-08T22:01:44Z</updated>
<author>
<name>Attila Molnar</name>
</author>
<published>2014-02-08T22:01:44Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=efe77ba63b1e519fc4d563bd9b599277c4bd96e5'/>
<id>urn:sha1:efe77ba63b1e519fc4d563bd9b599277c4bd96e5</id>
<content type='text'>
</content>
</entry>
</feed>
