trivial-httpd: Avoid SoupBuffer when there's no content

This was supposed to be merged into the previous commit, but I
messed up.
This commit is contained in:
Matthew Barnes 2015-11-23 14:29:03 -05:00
parent df75fc232a
commit 74d8e5f159
1 changed files with 12 additions and 8 deletions

View File

@ -225,8 +225,7 @@ do_get (OtTrivialHttpd *self,
if (msg->method == SOUP_METHOD_GET) if (msg->method == SOUP_METHOD_GET)
{ {
GMappedFile *mapping; g_autoptr(GMappedFile) mapping = NULL;
SoupBuffer *buffer;
gsize buffer_length, file_size; gsize buffer_length, file_size;
SoupRange *ranges; SoupRange *ranges;
int ranges_length; int ranges_length;
@ -270,12 +269,17 @@ do_get (OtTrivialHttpd *self,
} }
soup_message_headers_free_ranges (msg->request_headers, ranges); soup_message_headers_free_ranges (msg->request_headers, ranges);
} }
buffer = soup_buffer_new_with_owner (g_mapped_file_get_contents (mapping), if (buffer_length > 0)
buffer_length, {
mapping, (GDestroyNotify)g_mapped_file_unref); SoupBuffer *buffer;
if (buffer->length > 0)
soup_message_body_append_buffer (msg->response_body, buffer); buffer = soup_buffer_new_with_owner (g_mapped_file_get_contents (mapping),
soup_buffer_free (buffer); buffer_length,
g_mapped_file_ref (mapping),
(GDestroyNotify)g_mapped_file_unref);
soup_message_body_append_buffer (msg->response_body, buffer);
soup_buffer_free (buffer);
}
} }
else /* msg->method == SOUP_METHOD_HEAD */ else /* msg->method == SOUP_METHOD_HEAD */
{ {