]> source.dussan.org Git - rspamd.git/commitdiff
Implement basic stats support.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 12 Oct 2015 11:13:16 +0000 (12:13 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 12 Oct 2015 11:13:16 +0000 (12:13 +0100)
src/libserver/rspamd_control.c
src/libserver/worker_util.c

index 3217798ced88a2df8ed34fc0dde27cdb0c1d6e2f..e8c24ff12e1cd5b6575da16352040d1ce0201cf2 100644 (file)
@@ -158,7 +158,7 @@ rspamd_control_write_reply (struct rspamd_control_session *session)
        rep = ucl_object_typed_new (UCL_OBJECT);
 
        DL_FOREACH (session->replies, elt) {
-               rspamd_snprintf (tmpbuf, sizeof (tmpbuf), "%p", elt->wrk->pid);
+               rspamd_snprintf (tmpbuf, sizeof (tmpbuf), "%P", elt->wrk->pid);
                cur = ucl_object_typed_new (UCL_OBJECT);
 
                ucl_object_insert_key (cur, ucl_object_fromstring (g_quark_to_string (
@@ -199,7 +199,7 @@ rspamd_control_wrk_io (gint fd, short what, gpointer ud)
 
        if (read (elt->wrk->control_pipe[0], &elt->reply, sizeof (elt->reply)) !=
                                sizeof (elt->reply)) {
-               msg_err ("cannot read request from the worker %p (%s): %s",
+               msg_err ("cannot read request from the worker %P (%s): %s",
                                elt->wrk->pid, g_quark_to_string (elt->wrk->type), strerror (errno));
        }
 
@@ -208,7 +208,6 @@ rspamd_control_wrk_io (gint fd, short what, gpointer ud)
 
        if (elt->session->replies_remain == 0) {
                rspamd_control_write_reply (elt->session);
-               rspamd_control_connection_close (elt->session);
        }
 }
 
@@ -287,7 +286,7 @@ rspamd_control_finish_hadler (struct rspamd_http_connection *conn,
                                        session->replies_remain ++;
                                }
                                else {
-                                       msg_err ("cannot write request to the worker %p (%s): %s",
+                                       msg_err ("cannot write request to the worker %P (%s): %s",
                                                wrk->pid, g_quark_to_string (wrk->type), strerror (errno));
                                }
                        }
@@ -352,7 +351,7 @@ rspamd_control_default_cmd_handler (gint fd,
                }
 
                rep.reply.stat.conns = cd->worker->nconns;
-               rep.reply.stat.utime = rspamd_get_calendar_ticks () - cd->worker->start_time;
+               rep.reply.stat.uptime = rspamd_get_calendar_ticks () - cd->worker->start_time;
                break;
        case RSPAMD_CONTROL_RELOAD:
                break;
index 2db047afeb8782eebcf6c551630aa677998bcff4..02be93d8ff1fa8d80b0da7ca3c2f350237a09912 100644 (file)
@@ -29,6 +29,7 @@
 #include "unix-std.h"
 #include "utlist.h"
 #include "ottery.h"
+#include "rspamd_control.h"
 
 #ifdef WITH_GPERF_TOOLS
 #include <google/profiler.h>
@@ -246,6 +247,7 @@ rspamd_prepare_worker (struct rspamd_worker *worker, const char *name,
        ev_base = event_init ();
 
        rspamd_worker_init_signals (worker, ev_base);
+       rspamd_control_worker_add_default_handler (worker, ev_base);
 
        /* Accept all sockets */
        cur = worker->cf->listen_socks;
@@ -469,6 +471,7 @@ rspamd_fork_worker (struct rspamd_main *rspamd_main,
                /* Do silent log reopen to avoid collisions */
                rspamd_log_close (rspamd_main->logger);
                rspamd_log_open (rspamd_main->logger);
+               cur->start_time = rspamd_get_calendar_ticks ();
 
 #if ((GLIB_MAJOR_VERSION == 2) && (GLIB_MINOR_VERSION <= 30))
 # if (GLIB_MINOR_VERSION > 20)