From: Vsevolod Stakhov Date: Tue, 20 Oct 2015 10:47:41 +0000 (+0100) Subject: Fix benchmarking server X-Git-Tag: 1.0.7~43 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=13678bed5f6c64e8e108dcc4ab6a9f94fee11401;p=thirdparty%2Frspamd.git Fix benchmarking server --- diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt index 9da564a320..f9eefb4f02 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 eb6b8fcba5..c5cb16a24e 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