From 22e07e5504052efa91cf7425a1feb99f2335145f Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Sat, 13 Oct 2018 14:23:00 +0100 Subject: [Minor] Allow to edit empty maps --- src/controller.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/controller.c b/src/controller.c index 6cb5eaa62..88d1d0ed6 100644 --- a/src/controller.c +++ b/src/controller.c @@ -1047,12 +1047,18 @@ rspamd_controller_handle_get_map (struct rspamd_http_connection_entry *conn_ent, reply->date = time (NULL); reply->code = 200; - if (!rspamd_http_message_set_body_from_fd (reply, fd)) { - close (fd); - rspamd_http_message_unref (reply); - msg_err_session ("cannot read map %s: %s", bk->uri, strerror (errno)); - rspamd_controller_send_error (conn_ent, 500, "Map read error"); - return 0; + if (st.st_size > 0) { + if (!rspamd_http_message_set_body_from_fd (reply, fd)) { + close (fd); + rspamd_http_message_unref (reply); + msg_err_session ("cannot read map %s: %s", bk->uri, strerror (errno)); + rspamd_controller_send_error (conn_ent, 500, "Map read error"); + return 0; + } + } + else { + rspamd_fstring_t *empty_body = rspamd_fstring_new_init ("", 0); + rspamd_http_message_set_body_from_fstring_steal (reply, empty_body); } close (fd); -- cgit v1.2.3