<feed xmlns='http://www.w3.org/2005/Atom'>
<title>~steering/inspircd++.git/src/socketengines/socketengine_kqueue.cpp, branch v3.17.1</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>https://www.cgit.space/~steering/inspircd++.git/atom/src/socketengines/socketengine_kqueue.cpp?h=v3.17.1</id>
<link rel='self' href='https://www.cgit.space/~steering/inspircd++.git/atom/src/socketengines/socketengine_kqueue.cpp?h=v3.17.1'/>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/'/>
<updated>2022-12-30T11:31:28Z</updated>
<entry>
<title>Update copyright headers.</title>
<updated>2022-12-30T11:31:28Z</updated>
<author>
<name>InspIRCd Robot</name>
</author>
<published>2022-12-30T11:31:28Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=2b810b412aeee2d9c79d97fa54a80e317981a6d8'/>
<id>urn:sha1:2b810b412aeee2d9c79d97fa54a80e317981a6d8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Update copyright headers.</title>
<updated>2020-01-11T22:14:43Z</updated>
<author>
<name>InspIRCd Robot</name>
</author>
<published>2020-01-11T22:02:47Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=aa692dc1039b63deef7886e914ec499abe7facaf'/>
<id>urn:sha1:aa692dc1039b63deef7886e914ec499abe7facaf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Tweak the workaround for NetBSD's kqueue using intptr_t for udata.</title>
<updated>2019-10-05T19:35:09Z</updated>
<author>
<name>Peter Powell</name>
</author>
<published>2019-10-05T19:29:53Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=b9c1f4a2e8aa8d8892ae11d1570dda6341a77417'/>
<id>urn:sha1:b9c1f4a2e8aa8d8892ae11d1570dda6341a77417</id>
<content type='text'>
Thanks to @niacat for getting this fixed upstream.
</content>
</entry>
<entry>
<title>Work around NetBSD's EV_SET using intptr_t instead of void*.</title>
<updated>2019-05-03T14:44:59Z</updated>
<author>
<name>Peter Powell</name>
</author>
<published>2019-05-03T14:37:25Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=0c992c5a3d6b30a6b14adf3181bf0b1e1fdeab48'/>
<id>urn:sha1:0c992c5a3d6b30a6b14adf3181bf0b1e1fdeab48</id>
<content type='text'>
Reported by @ensra.
</content>
</entry>
<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>Kill needless #includes in source files</title>
<updated>2014-06-14T13:30:14Z</updated>
<author>
<name>Attila Molnar</name>
</author>
<published>2014-06-14T13:30:14Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=82435b6fa8805baa65e04a582f3e4a2c84237f73'/>
<id>urn:sha1:82435b6fa8805baa65e04a582f3e4a2c84237f73</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Change the number reported by SocketEngine::GetMaxFds() to be informal</title>
<updated>2014-06-07T11:47:26Z</updated>
<author>
<name>Attila Molnar</name>
</author>
<published>2014-06-07T11:47:26Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=5a6fd54f8fd217232f98804431928609580742bc'/>
<id>urn:sha1:5a6fd54f8fd217232f98804431928609580742bc</id>
<content type='text'>
Do not exit if we can't determine it
</content>
</entry>
</feed>
