summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xrspamc.pl.in4
-rw-r--r--src/controller.c8
2 files changed, 8 insertions, 4 deletions
diff --git a/rspamc.pl.in b/rspamc.pl.in
index d53084509..86abbc1cd 100755
--- a/rspamc.pl.in
+++ b/rspamc.pl.in
@@ -235,8 +235,8 @@ sub do_control_command {
syswrite $sock, "weights $cfg{'statfile'} $len" . $CRLF;
syswrite $sock, $input . $CRLF;
while (defined (my $reply = <$sock>)) {
- last if $line =~ /^END/;
- print $_;
+ last if $reply =~ /^END/;
+ print $reply;
}
}
elsif ($cfg{'command'} =~ /(reload|shutdown)/i) {
diff --git a/src/controller.c b/src/controller.c
index 9061563d8..50b2b5f34 100644
--- a/src/controller.c
+++ b/src/controller.c
@@ -338,8 +338,12 @@ process_stat_command (struct controller_session *session)
memory_pool_stat (&mem_st);
r = snprintf (out_buf, sizeof (out_buf), "Messages scanned: %u" CRLF, session->worker->srv->stat->messages_scanned);
- r += snprintf (out_buf + r, sizeof (out_buf) - r, "Messages treated as spam: %u" CRLF, session->worker->srv->stat->messages_spam);
- r += snprintf (out_buf + r, sizeof (out_buf) - r, "Messages treated as ham: %u" CRLF, session->worker->srv->stat->messages_ham);
+ if (session->worker->srv->stat->messages_scanned > 0) {
+ r += snprintf (out_buf + r, sizeof (out_buf) - r, "Messages treated as spam: %u, %.2f%%" CRLF, session->worker->srv->stat->messages_spam,
+ (double)session->worker->srv->stat->messages_spam / (double)session->worker->srv->stat->messages_scanned * 100.);
+ r += snprintf (out_buf + r, sizeof (out_buf) - r, "Messages treated as ham: %u, %.2f%%" CRLF, session->worker->srv->stat->messages_ham,
+ (double)session->worker->srv->stat->messages_ham / (double)session->worker->srv->stat->messages_scanned * 100.);
+ }
r += snprintf (out_buf + r, sizeof (out_buf) - r, "Messages learned: %u" CRLF, session->worker->srv->stat->messages_learned);
r += snprintf (out_buf + r, sizeof (out_buf) - r, "Connections count: %u" CRLF, session->worker->srv->stat->connections_count);
r += snprintf (out_buf + r, sizeof (out_buf) - r, "Control connections count: %u" CRLF, session->worker->srv->stat->control_connections_count);