From 13678bed5f6c64e8e108dcc4ab6a9f94fee11401 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Tue, 20 Oct 2015 11:47:41 +0100 Subject: [PATCH] Fix benchmarking server --- utils/CMakeLists.txt | 9 ++++----- utils/rspamd_http_server.c | 14 ++++++++++---- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt index 9da564a32..f9eefb4f0 100644 --- a/utils/CMakeLists.txt +++ b/utils/CMakeLists.txt @@ -4,15 +4,14 @@ SET(UTILBENCHSRC rspamd_http_bench.c) ADD_EXECUTABLE(rspamd-http-server ${UTILSERVERSRC}) SET_TARGET_PROPERTIES(rspamd-http-server PROPERTIES LINKER_LANGUAGE C) TARGET_LINK_LIBRARIES(rspamd-http-server rspamd-server) - TARGET_LINK_LIBRARIES(rspamd-http-server rspamd-http-parser) TARGET_LINK_LIBRARIES(rspamd-http-server ${RSPAMD_REQUIRED_LIBRARIES}) ADD_EXECUTABLE(rspamd-http-bench ${UTILBENCHSRC}) -SET_TARGET_PROPERTIES(rspamd-http-server PROPERTIES LINKER_LANGUAGE C) -TARGET_LINK_LIBRARIES(rspamd-http-server rspamd-server) -TARGET_LINK_LIBRARIES(rspamd-http-server rspamd-http-parser) -TARGET_LINK_LIBRARIES(rspamd-http-server ${RSPAMD_REQUIRED_LIBRARIES}) +SET_TARGET_PROPERTIES(rspamd-http-bench PROPERTIES LINKER_LANGUAGE C) +TARGET_LINK_LIBRARIES(rspamd-http-bench rspamd-server) +TARGET_LINK_LIBRARIES(rspamd-http-bench rspamd-http-parser) +TARGET_LINK_LIBRARIES(rspamd-http-bench ${RSPAMD_REQUIRED_LIBRARIES}) # Redirector IF (ENABLE_REDIRECTOR MATCHES "ON") diff --git a/utils/rspamd_http_server.c b/utils/rspamd_http_server.c index eb6b8fcba..c5cb16a24 100644 --- a/utils/rspamd_http_server.c +++ b/utils/rspamd_http_server.c @@ -43,7 +43,7 @@ static GHashTable *maps = NULL; static struct rspamd_keypair_cache *c; static gpointer server_key; static struct timeval io_tv = { - .tv_sec = 5, + .tv_sec = 20, .tv_usec = 0 }; @@ -71,8 +71,12 @@ static void rspamd_server_error (struct rspamd_http_connection *conn, GError *err) { - msg_err ("http error occurred: %s", err->message); - g_assert (0); + struct rspamd_http_server_session *session = conn->ud; + + rspamd_fprintf (stderr, "http error occurred: %s\n", err->message); + rspamd_http_connection_unref (conn); + close (session->fd); + g_slice_free1 (sizeof (*session), session); } static int @@ -102,6 +106,7 @@ rspamd_server_finish (struct rspamd_http_connection *conn, reply->code = 200; reply->status = rspamd_fstring_new_init ("OK", 2); reply->body = rspamd_fstring_sized_new (size); + reply->body->len = size; memset (reply->body->str, 0, size); } else { @@ -134,7 +139,7 @@ rspamd_server_accept (gint fd, short what, void *arg) if ((nfd = rspamd_accept_from_socket (fd, &addr)) == -1) { - msg_warn ("accept failed: %s", strerror (errno)); + rspamd_fprintf (stderr, "accept failed: %s", strerror (errno)); return; } /* Check for EAGAIN */ @@ -222,6 +227,7 @@ rspamd_http_server_term (int fd, short what, void *arg) pid_t *sfd = arg; rspamd_http_stop_servers (sfd); + event_loopexit (NULL); } int -- 2.39.5