<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tteras/strongswan/src/libstrongswan/processing, branch master</title>
<subtitle>tteras' strongSwan tree
</subtitle>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/user/tteras/strongswan/'/>
<entry>
<title>watcher: Don't notify watcher if removed FD was not found</title>
<updated>2017-10-10T09:13:53+00:00</updated>
<author>
<name>Tobias Brunner</name>
<email>tobias@strongswan.org</email>
</author>
<published>2017-09-07T07:51:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/user/tteras/strongswan/commit/?id=0d08959a040708c74f1302d5af4c2ddabd328324'/>
<id>0d08959a040708c74f1302d5af4c2ddabd328324</id>
<content type='text'>
This can happen if a stream is used blocking exclusively (the FD is
never registered with watcher, but is removed in the stream's destructor
just in case it ever was - doing this conditionally would require an
additional flag in streams).  There may be no thread reading from
the read end of the notify pipe (e.g. in starter), causing the write
to the notify pipe to block after it's full.  Anyway, doing a relatively
expensive FD update is unnecessary if there were no changes.

Fixes #1453.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This can happen if a stream is used blocking exclusively (the FD is
never registered with watcher, but is removed in the stream's destructor
just in case it ever was - doing this conditionally would require an
additional flag in streams).  There may be no thread reading from
the read end of the notify pipe (e.g. in starter), causing the write
to the notify pipe to block after it's full.  Anyway, doing a relatively
expensive FD update is unnecessary if there were no changes.

Fixes #1453.
</pre>
</div>
</content>
</entry>
<entry>
<title>processor: Move priority threads assignment to set_threads()</title>
<updated>2017-05-23T16:29:12+00:00</updated>
<author>
<name>Tobias Brunner</name>
<email>tobias@strongswan.org</email>
</author>
<published>2017-05-03T15:35:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/user/tteras/strongswan/commit/?id=83eacc448c94e7cb8cd11720aab505d865eeb6ef'/>
<id>83eacc448c94e7cb8cd11720aab505d865eeb6ef</id>
<content type='text'>
This avoids the evaluation of %N even if the thread pool is never used.
We need to avoid as many custom printf specifiers as possible when
fuzzing our code to avoid excessive log messages.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This avoids the evaluation of %N even if the thread pool is never used.
We need to avoid as many custom printf specifiers as possible when
fuzzing our code to avoid excessive log messages.
</pre>
</div>
</content>
</entry>
<entry>
<title>watcher: Avoid allocations due to enumerators</title>
<updated>2016-10-04T08:12:18+00:00</updated>
<author>
<name>Tobias Brunner</name>
<email>tobias@strongswan.org</email>
</author>
<published>2016-07-14T16:28:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/user/tteras/strongswan/commit/?id=b27663399b4bbb7479efbfb3663db9feaf6b4126'/>
<id>b27663399b4bbb7479efbfb3663db9feaf6b4126</id>
<content type='text'>
Since the FD set could get rebuilt quite often this change avoids having
to allocate memory just to enumerate the registered FDs.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since the FD set could get rebuilt quite often this change avoids having
to allocate memory just to enumerate the registered FDs.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use standard unsigned integer types</title>
<updated>2016-03-24T17:52:48+00:00</updated>
<author>
<name>Andreas Steffen</name>
<email>andreas.steffen@strongswan.org</email>
</author>
<published>2016-03-22T12:22:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/user/tteras/strongswan/commit/?id=b12c53ce77beb8e04b044d0c0dc9249ddba72200'/>
<id>b12c53ce77beb8e04b044d0c0dc9249ddba72200</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>watcher: Check for cancellation if poll() fails with EINTR</title>
<updated>2015-12-04T07:01:15+00:00</updated>
<author>
<name>Martin Willi</name>
<email>martin@strongswan.org</email>
</author>
<published>2015-11-10T08:42:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/user/tteras/strongswan/commit/?id=8b0c9cf155eb3505a643a3e769248a09fdf637f5'/>
<id>8b0c9cf155eb3505a643a3e769248a09fdf637f5</id>
<content type='text'>
With LinuxThreads, poll() is unfortunately no cancellation point. It seems
that poll gets woken up after cancellation, but we actively must check
for cancellation before re-entering poll to properly shut down the watcher
thread.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
With LinuxThreads, poll() is unfortunately no cancellation point. It seems
that poll gets woken up after cancellation, but we actively must check
for cancellation before re-entering poll to properly shut down the watcher
thread.
</pre>
</div>
</content>
</entry>
<entry>
<title>scheduler: Add method to remove all scheduled jobs</title>
<updated>2015-03-09T14:57:57+00:00</updated>
<author>
<name>Tobias Brunner</name>
<email>tobias@strongswan.org</email>
</author>
<published>2015-03-05T09:07:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/user/tteras/strongswan/commit/?id=11ac1dff9c00c95b19fbe074ba788fc278970678'/>
<id>11ac1dff9c00c95b19fbe074ba788fc278970678</id>
<content type='text'>
References #840.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
References #840.
</pre>
</div>
</content>
</entry>
<entry>
<title>apple: Redefine some additional clashing Mach types</title>
<updated>2014-12-16T16:22:28+00:00</updated>
<author>
<name>Martin Willi</name>
<email>martin@revosec.ch</email>
</author>
<published>2014-12-16T15:55:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/user/tteras/strongswan/commit/?id=04337fed02e8dde1b184b3c163cc76138037905e'/>
<id>04337fed02e8dde1b184b3c163cc76138037905e</id>
<content type='text'>
While they usually are not included in a normal strongSwan build, the XPC
header indirectly defines these Mach types. To build charon-xpc, which uses
both XPC and strongSwan includes, we have to redefine these types.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While they usually are not included in a normal strongSwan build, the XPC
header indirectly defines these Mach types. To build charon-xpc, which uses
both XPC and strongSwan includes, we have to redefine these types.
</pre>
</div>
</content>
</entry>
<entry>
<title>watcher: Proper handle poll() POLLHUP/NVAL signaling</title>
<updated>2014-11-28T11:50:34+00:00</updated>
<author>
<name>Martin Willi</name>
<email>martin@revosec.ch</email>
</author>
<published>2014-11-28T11:36:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/user/tteras/strongswan/commit/?id=015fb3134db41ca9901ec5c895b15f5a37590ddc'/>
<id>015fb3134db41ca9901ec5c895b15f5a37590ddc</id>
<content type='text'>
poll() may return POLLHUP or POLLNVAL for given file descriptors. To handle
these properly, we signal them to the EXCEPT watcher state, if registered. If
not, we call the read/write callbacks, so they can properly fail when trying
to read from or write to the file descriptor.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
poll() may return POLLHUP or POLLNVAL for given file descriptors. To handle
these properly, we signal them to the EXCEPT watcher state, if registered. If
not, we call the read/write callbacks, so they can properly fail when trying
to read from or write to the file descriptor.
</pre>
</div>
</content>
</entry>
<entry>
<title>watcher: Use Windows read/write(2) wrappers instead of compile-conditions</title>
<updated>2014-11-21T11:02:08+00:00</updated>
<author>
<name>Martin Willi</name>
<email>martin@revosec.ch</email>
</author>
<published>2014-11-06T13:20:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/user/tteras/strongswan/commit/?id=6e1d3f3615c48f5357fd339c57735aad0d03effa'/>
<id>6e1d3f3615c48f5357fd339c57735aad0d03effa</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>watcher: Use poll(2) instead of select</title>
<updated>2014-11-21T11:02:07+00:00</updated>
<author>
<name>Martin Willi</name>
<email>martin@revosec.ch</email>
</author>
<published>2014-11-05T16:31:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/user/tteras/strongswan/commit/?id=03bccc240ce8ae5885d9de2e1ec2f7fd6b14814c'/>
<id>03bccc240ce8ae5885d9de2e1ec2f7fd6b14814c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
