aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcebka@lenovo-laptop <cebka@lenovo-laptop>2010-03-17 17:24:35 +0300
committercebka@lenovo-laptop <cebka@lenovo-laptop>2010-03-17 17:24:35 +0300
commit80e0a6ac5f69911be278c7d1ae67c8027e903e5b (patch)
tree6b4e158e08f27d163c7ec17989f7aca1594d13ea
parent8ff54fd778dbbdf807312fb563c2c440a5101a2c (diff)
downloadrspamd-80e0a6ac5f69911be278c7d1ae67c8027e903e5b.tar.gz
rspamd-80e0a6ac5f69911be278c7d1ae67c8027e903e5b.zip
* Fix statistics of messages in controller
* Fix building and installing perl target * Fix learn command name * Controller's commands are now case insensitive * Statfiles can now be selected from popup list in cgi interface * Password for controller's commands can now be specified in cgi interface
-rw-r--r--CMakeLists.txt4
-rw-r--r--cgi/rspamd.cgi6
-rw-r--r--perl/lib/Mail/Rspamd/Client.pm2
-rw-r--r--src/controller.c1
-rw-r--r--src/message.c4
-rw-r--r--src/protocol.c2
6 files changed, 9 insertions, 10 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index dc6158b08..37630d51e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -485,7 +485,7 @@ ADD_CUSTOM_COMMAND(OUTPUT src/modules.c
IF(PERL_EXECUTABLE)
ADD_CUSTOM_COMMAND(OUTPUT perl/Makefile
- PRE_BUILD
+ DEPENDS perl/Makefile.PL
COMMAND ${PERL_EXECUTABLE} ./Makefile.PL
WORKING_DIRECTORY perl)
CONFIGURE_FILE(perl/Makefile.PL.in perl/Makefile.PL)
@@ -655,8 +655,6 @@ ENDIF(ENABLE_LUA MATCHES "ON")
# Perl lib
IF(PERL_EXECUTABLE)
- INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} ./Makefile.PL WORKING_DIRECTORY perl)")
- INSTALL(CODE "EXECUTE_PROCESS(COMMAND make WORKING_DIRECTORY perl)")
INSTALL(CODE "EXECUTE_PROCESS(COMMAND make install WORKING_DIRECTORY perl)")
ENDIF(PERL_EXECUTABLE)
diff --git a/cgi/rspamd.cgi b/cgi/rspamd.cgi
index 386bf39af..2c5f9113a 100644
--- a/cgi/rspamd.cgi
+++ b/cgi/rspamd.cgi
@@ -17,6 +17,8 @@ use Data::Dumper;
my %cfg = (
'hosts' => ['localhost:11333'],
'timeout' => 1,
+ 'password' => '',
+ 'statfiles' => ['WINNOW_HAM', 'WINNOW_SPAM'],
);
sub new {
@@ -128,7 +130,7 @@ sub _show_html {
),
br,
"<label for=\"id_statfile\">Statfile:</label>",
- textfield(-name=>'statfile', -id=>'id_statfile'),
+ popup_menu(-name=>'statfile', -id=>'id_statfile', -values=>$cfg{'statfiles'}),
br,
"<label for=\"id_file\">File:</label>",
filefield(-name=>'upload_file', -id=>'id_file'),
@@ -291,7 +293,7 @@ sub _handle_form {
if (!@servers || scalar(@servers) == 0) {
@servers = @{ $cfg{'hosts'} };
}
- my $rspamd = Mail::Rspamd::Client->new({hosts => \@servers, timeout=>$cfg{timeout}});
+ my $rspamd = Mail::Rspamd::Client->new({hosts => \@servers, timeout=>$cfg{timeout}, password=>$cfg{password}});
my $cmd = $cgi->param('command');
if (!$cmd) {
return undef;
diff --git a/perl/lib/Mail/Rspamd/Client.pm b/perl/lib/Mail/Rspamd/Client.pm
index 100bfad68..d5b630118 100644
--- a/perl/lib/Mail/Rspamd/Client.pm
+++ b/perl/lib/Mail/Rspamd/Client.pm
@@ -394,7 +394,7 @@ This method makes a call to the spamd learning a statfile with message.
sub learn {
my ($self, $msg) = @_;
- $self->{command} = 'LEARN';
+ $self->{command} = 'learn';
$self->{control} = 1;
return $self->do_all_cmd ($msg);
diff --git a/src/controller.c b/src/controller.c
index 69b5608e7..4133aad12 100644
--- a/src/controller.c
+++ b/src/controller.c
@@ -982,6 +982,7 @@ start_controller (struct rspamd_worker *worker)
}
comp = g_completion_new (completion_func);
g_completion_add_items (comp, comp_list);
+ g_completion_set_compare (comp, g_ascii_strncasecmp);
/* Fill hostname buf */
hostmax = sysconf (_SC_HOST_NAME_MAX) + 1;
hostbuf = alloca (hostmax);
diff --git a/src/message.c b/src/message.c
index 225125bcc..08f1bf5f1 100644
--- a/src/message.c
+++ b/src/message.c
@@ -824,10 +824,6 @@ process_message (struct worker_task *task)
#endif
}
- if (task->worker) {
- task->worker->srv->stat->messages_scanned++;
- }
-
return 0;
}
diff --git a/src/protocol.c b/src/protocol.c
index 1209f3754..8da0f174d 100644
--- a/src/protocol.c
+++ b/src/protocol.c
@@ -721,6 +721,7 @@ write_check_reply (struct worker_task *task)
msg_info ("%s", logbuf);
rspamd_dispatcher_write (task->dispatcher, CRLF, sizeof (CRLF) - 1, FALSE, TRUE);
+ task->worker->srv->stat->messages_scanned++;
if (default_score >= default_required_score) {
task->worker->srv->stat->messages_spam ++;
}
@@ -785,6 +786,7 @@ write_process_reply (struct worker_task *task)
rspamd_dispatcher_write (task->dispatcher, outbuf, r, TRUE, FALSE);
rspamd_dispatcher_write (task->dispatcher, outmsg, strlen (outmsg), FALSE, TRUE);
+ task->worker->srv->stat->messages_scanned++;
if (default_score >= default_required_score) {
task->worker->srv->stat->messages_spam ++;
}