<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en">
<head>
<meta content="text/html; charset=US-ASCII" http-equiv="Content-Type">
<title>
GitLab
</title>



<style>img {
max-width: 100%; height: auto;
}
</style>
</head>
<body>
<div class="content">

<h3>
Samuel Thibault pushed to branch master
at <a href="https://gitlab.freedesktop.org/slirp/libslirp">slirp / libslirp</a>
</h3>
<h4>
Commits:
</h4>
<ul>
<li>
<strong><a href="https://gitlab.freedesktop.org/slirp/libslirp/-/commit/9f78e94912f911d325302c115f47d9ddf8865b64">9f78e949</a></strong>
<div>
<span>by Hafiz Abid Qadeer</span>
<i>at 2021-01-29T15:26:27+00:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">[PATCH] Fix a typo that can cause slow socket response on Windows.

We observed slow responses on a host forwarded port on Windows. Investigation revealed that qemu_fd_register was being called with fd=-1 and this caused g_poll in qemu_poll_ns timing out. I tracked this behavior to following commit:
748f8f4 slirp: replace qemu_set_nonblock()

@@ -482,7 +483,8 @@ void tcp_connect(struct socket *inso)
         tcp_close(sototcpcb(so)); /* This will sofree() as well */
         return;
     }
-    qemu_set_nonblock(s);
+    slirp_set_nonblock(s);
+    so->slirp->cb->register_poll_fd(so->s);

It seems that calling register_poll_fd with so->s instead of s may be a typo. Changing it back to s solves this issue. The commit 748f8f4 made similar change in tcp_fconnect but I have not touched it.

Signed-off-by: Hafiz Abid Qadeer <abidh@codesourcery.com>
</pre>
</li>
<li>
<strong><a href="https://gitlab.freedesktop.org/slirp/libslirp/-/commit/4284fc86c23e5727bdb97bcce83fd36a4bfc13af">4284fc86</a></strong>
<div>
<span>by Samuel Thibault</span>
<i>at 2021-01-29T21:49:15+00:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Merge branch 'socket_delay' into 'master'

[PATCH] Fix a typo that can cause slow socket response on Windows.

See merge request slirp/libslirp!64</pre>
</li>
</ul>
<h4>1 changed file:</h4>
<ul>
<li class="file-stats">
<a href="#848441ab156593220a8526428e9784e3f38417b2">
src/tcp_subr.c
</a>
</li>
</ul>
<h4>Changes:</h4>
<li id="848441ab156593220a8526428e9784e3f38417b2">
<a href="https://gitlab.freedesktop.org/slirp/libslirp/-/compare/5dce846e3ee82d93462bc637bb0db2fd49f0fc5a...4284fc86c23e5727bdb97bcce83fd36a4bfc13af#848441ab156593220a8526428e9784e3f38417b2"><strong>src/tcp_subr.c</strong></a>
<hr>
<table class="code white" style="font-family: monospace; font-size: 90%;" bgcolor="#fff" width="100%" cellpadding="0" cellspacing="0">
<tr class="line_holder match" id="" style="line-height: 1.6;">
<td class="diff-line-num unfold js-unfold old_line" data-linenumber="493" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">...</td>
<td class="diff-line-num unfold js-unfold new_line" data-linenumber="493" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">...</td>
<td class="line_content match " style="padding-left: 0.5em; padding-right: 0.5em; color: rgba(0,0,0,0.3);" bgcolor="#fafafa">@@ -493,7 +493,7 @@ void tcp_connect(struct socket *inso)</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="493" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
493
</td>
<td class="diff-line-num new_line" data-linenumber="493" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
493
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC493" class="line" lang="c">        <span class="k" style="font-weight: 600;">return</span><span class="p">;</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="494" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
494
</td>
<td class="diff-line-num new_line" data-linenumber="494" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
494
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC494" class="line" lang="c">    <span class="p">}</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="495" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
495
</td>
<td class="diff-line-num new_line" data-linenumber="495" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
495
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC495" class="line" lang="c">    <span class="n" style="color: #333;">slirp_set_nonblock</span><span class="p">(</span><span class="n" style="color: #333;">s</span><span class="p">);</span></span>
</pre>
</td>
</tr>
<tr class="line_holder old" id="" style="line-height: 1.6;">
<td class="diff-line-num old old_line" data-linenumber="496" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
496
</td>
<td class="diff-line-num new_line old" data-linenumber="496" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #fac5cd; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#f9d7dc">
 
</td>
<td class="line_content old" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#fbe9eb">
<pre style="margin: 0;">-<span id="LC496" class="line" lang="c">    <span class="n" style="color: #333;">so</span><span class="o" style="font-weight: 600;">-></span><span class="n" style="color: #333;">slirp</span><span class="o" style="font-weight: 600;">-></span><span class="n" style="color: #333;">cb</span><span class="o" style="font-weight: 600;">-></span><span class="n" style="color: #333;">register_poll_fd</span><span class="p">(</span><span class="n" style="color: #333;">s<span class="idiff left">o</span></span><span class="o" style="font-weight: 600;"><span class="idiff">-></span></span><span class="n" style="color: #333;"><span class="idiff right">s</span></span><span class="p">,</span> <span class="n" style="color: #333;">so</span><span class="o" style="font-weight: 600;">-></span><span class="n" style="color: #333;">slirp</span><span class="o" style="font-weight: 600;">-></span><span class="n" style="color: #333;">opaque</span><span class="p">);</span></span>
</pre>
</td>
</tr>
<tr class="line_holder new" id="" style="line-height: 1.6;">
<td class="diff-line-num new old_line" data-linenumber="497" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
 
</td>
<td class="diff-line-num new new_line" data-linenumber="496" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #c7f0d2; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#ddfbe6">
496
</td>
<td class="line_content new" style="padding-left: 0.5em; padding-right: 0.5em;" bgcolor="#ecfdf0">
<pre style="margin: 0;">+<span id="LC496" class="line" lang="c">    <span class="n" style="color: #333;">so</span><span class="o" style="font-weight: 600;">-></span><span class="n" style="color: #333;">slirp</span><span class="o" style="font-weight: 600;">-></span><span class="n" style="color: #333;">cb</span><span class="o" style="font-weight: 600;">-></span><span class="n" style="color: #333;">register_poll_fd</span><span class="p">(</span><span class="n" style="color: #333;">s</span><span class="p">,</span> <span class="n" style="color: #333;">so</span><span class="o" style="font-weight: 600;">-></span><span class="n" style="color: #333;">slirp</span><span class="o" style="font-weight: 600;">-></span><span class="n" style="color: #333;">opaque</span><span class="p">);</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="497" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
497
</td>
<td class="diff-line-num new_line" data-linenumber="497" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
497
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC497" class="line" lang="c">    <span class="n" style="color: #333;">slirp_socket_set_fast_reuse</span><span class="p">(</span><span class="n" style="color: #333;">s</span><span class="p">);</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="498" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
498
</td>
<td class="diff-line-num new_line" data-linenumber="498" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
498
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC498" class="line" lang="c">    <span class="n" style="color: #333;">opt</span> <span class="o" style="font-weight: 600;">=</span> <span class="mi" style="color: #099;">1</span><span class="p">;</span></span>
</pre>
</td>
</tr>
<tr class="line_holder" id="" style="line-height: 1.6;">
<td class="diff-line-num old_line" data-linenumber="499" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
499
</td>
<td class="diff-line-num new_line" data-linenumber="499" style="width: 35px; color: rgba(0,0,0,0.3); border-right-width: 1px; border-right-color: #f0f0f0; border-right-style: solid; padding: 0 5px;" align="right" bgcolor="#fafafa">
499
</td>
<td class="line_content" style="padding-left: 0.5em; padding-right: 0.5em;">
<pre style="margin: 0;"> <span id="LC499" class="line" lang="c">    <span class="n" style="color: #333;">setsockopt</span><span class="p">(</span><span class="n" style="color: #333;">s</span><span class="p">,</span> <span class="n" style="color: #333;">SOL_SOCKET</span><span class="p">,</span> <span class="n" style="color: #333;">SO_OOBINLINE</span><span class="p">,</span> <span class="o" style="font-weight: 600;">&</span><span class="n" style="color: #333;">opt</span><span class="p">,</span> <span class="k" style="font-weight: 600;">sizeof</span><span class="p">(</span><span class="kt" style="color: #458; font-weight: 600;">int</span><span class="p">));</span></span>
</pre>
</td>
</tr>

</table>
<br>
</li>

</div>
<div class="footer" style="margin-top: 10px;">
<p style="font-size: small; color: #666;">

<br>
<a href="https://gitlab.freedesktop.org/slirp/libslirp/-/compare/5dce846e3ee82d93462bc637bb0db2fd49f0fc5a...4284fc86c23e5727bdb97bcce83fd36a4bfc13af">View it on GitLab</a>.
<br>
You're receiving this email because of your account on gitlab.freedesktop.org.
If you'd like to receive fewer emails, you can
adjust your notification settings.



</p>
</div>
</body>
</html>