<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hardening consulting (Posts about non blocking)</title><link>https://www.hardening-consulting.com/</link><description></description><atom:link href="https://www.hardening-consulting.com/en/categories/non-blocking.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><lastBuildDate>Tue, 18 Feb 2025 22:51:03 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Take a large tour of FreeRdp</title><link>https://www.hardening-consulting.com/en/posts/20140522rock-around-freerdp.html</link><dc:creator>David FORT</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;img class="alignright" alt="FreeRdp" src="https://www.hardening-consulting.com/images/FreeRDP-small.png"&gt;&lt;/p&gt;
&lt;p&gt;These days, I have been working on having writes being non-blocking in &lt;a href="http://www.freerdp.com/"&gt;FreeRdp&lt;/a&gt;. 
That makes me walk through most of the low level component of FreeRdp, so let me share
things I have collected during this code walk. &lt;/p&gt;
&lt;h2&gt;Setting write calls non-blocking&lt;/h2&gt;
&lt;p&gt;The actual code is non-blocking for read: it handles a &lt;em&gt;EAGAIN&lt;/em&gt; or &lt;em&gt;EWOULDBLOCK&lt;/em&gt; 
for a read() call. But for write calls, it will actively wait until all data have been sent.
For the FreeRDP client you almost never hit the case where write calls gets blocked, because
most of the traffic is from the server to the client (sending screen updates). You can 
hit it anyway when using the channels: Disk Redirection (pushing a file to the server)
 or audio in (microphone exported to the server).&lt;/p&gt;
&lt;p&gt;But when you're in FreeRDS acting as a RDP server, blocking writes is very common. Just 
try to see a fullscreen video through a slow WIFI connection.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.hardening-consulting.com/en/posts/20140522rock-around-freerdp.html"&gt;Read more…&lt;/a&gt; (4 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>C</category><category>event driven</category><category>freerdp</category><category>non blocking</category><category>tsg</category><guid>https://www.hardening-consulting.com/en/posts/20140522rock-around-freerdp.html</guid><pubDate>Thu, 22 May 2014 17:03:19 GMT</pubDate></item></channel></rss>