<!DOCTYPE html>
<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hello,</p>
    <p>I found the patch that fixes it: it is
      d20c6601664624116f3dc43f21c7ec4a186cf8d3 in the GIT repository.
      The patch itself is this:</p>
    <div
style="color: #3b3b3b;background-color: #ffffff;font-family: 'Droid Sans Mono', 'monospace', monospace;font-weight: normal;font-size: 14px;line-height: 19px;white-space: pre;"><div><span
    style="color: #000080;">diff --git a/libsoup/server/http1/soup-server-message-io-http1.c b/libsoup/server/http1/soup-server-message-io-http1.c</span></div><div><span
    style="color: #3b3b3b;">index 90139f2b..3803cabc 100644</span></div><div><span
    style="color: #000080;">--- a/libsoup/server/http1/soup-server-message-io-http1.c</span></div><div><span
    style="color: #000080;">+++ b/libsoup/server/http1/soup-server-message-io-http1.c</span></div><div><span
    style="color: #3b3b3b;">@@ -122,21 +122,22 @@ soup_server_message_io_http1_finished (SoupServerMessageIO *iface,</span></div><div><span
    style="color: #3b3b3b;"> </span></div><div><span
    style="color: #3b3b3b;">         g_object_ref (msg);</span></div><div><span
    style="color: #3b3b3b;">         g_clear_pointer (&io->msg_io, soup_message_io_http1_free);</span></div><div><span
    style="color: #a31515;">-   if (completion_cb)</span></div><div><span
    style="color: #a31515;">-                completion_cb (G_OBJECT (msg), completion, completion_data);</span></div><div><span
    style="color: #3b3b3b;">         conn = soup_server_message_get_connection (msg);</span></div><div><span
    style="color: #a31515;">-        if (completion == SOUP_MESSAGE_IO_COMPLETE &&</span></div><div><span
    style="color: #a31515;">-            soup_server_connection_is_connected (conn) &&</span></div><div><span
    style="color: #a31515;">-            soup_server_message_is_keepalive (msg)) {</span></div><div><span
    style="color: #a31515;">-                io->msg_io = soup_message_io_http1_new (soup_server_message_new (conn));</span></div><div><span
    style="color: #a31515;">-                io->msg_io->base.io_source = soup_message_io_data_get_source (&io->msg_io->base,</span></div><div><span
    style="color: #a31515;">-                                                                              G_OBJECT (io->msg_io->msg),</span></div><div><span
    style="color: #a31515;">-                                                                              io->istream,</span></div><div><span
    style="color: #a31515;">-                                                                              io->ostream,</span></div><div><span
    style="color: #a31515;">-                                                                              NULL,</span></div><div><span
    style="color: #a31515;">-                                                                              (SoupMessageIOSourceFunc)io_run_ready,</span></div><div><span
    style="color: #a31515;">-                                                                              NULL);</span></div><div><span
    style="color: #a31515;">-                g_source_attach (io->msg_io->base.io_source, io->msg_io->async_context);</span></div><div><span
    style="color: #098658;">+   if (completion_cb) {</span></div><div><span
    style="color: #098658;">+                completion_cb (G_OBJECT (msg), completion, completion_data);</span></div><div><span
    style="color: #098658;">+                if (soup_server_connection_is_connected (conn)) {</span></div><div><span
    style="color: #098658;">+                        io->msg_io = soup_message_io_http1_new (soup_server_message_new (conn));</span></div><div><span
    style="color: #098658;">+                        io->msg_io->base.io_source = soup_message_io_data_get_source (&io->msg_io->base,</span></div><div><span
    style="color: #098658;">+                                                                                      G_OBJECT (io->msg_io->msg),</span></div><div><span
    style="color: #098658;">+                                                                                      io->istream,</span></div><div><span
    style="color: #098658;">+                                                                                      io->ostream,</span></div><div><span
    style="color: #098658;">+                                                                                      NULL,</span></div><div><span
    style="color: #098658;">+                                                                                      (SoupMessageIOSourceFunc)io_run_ready,</span></div><div><span
    style="color: #098658;">+                                                                                      NULL);</span></div><div><span
    style="color: #098658;">+                        g_source_attach (io->msg_io->base.io_source, io->msg_io->async_context);</span></div><div><span
    style="color: #098658;">+                }</span></div><div><span
    style="color: #098658;">+        } else {</span></div><div><span
    style="color: #098658;">+                soup_server_connection_disconnect (conn);</span></div><div><span
    style="color: #3b3b3b;">         }</span></div><div><span
    style="color: #3b3b3b;">         g_object_unref (msg);</span></div><div><span
    style="color: #3b3b3b;"> }</span></div><div><span
    style="color: #3b3b3b;">
</span></div><div><span style="color: #3b3b3b;">Although the diff in the GIT repository also adds an extra method in the soup-server class used by an extra unitary test that checks for this.
</span></div></div>
    <p></p>
  </body>
</html>