Fix bug with extracting urls from tags without quotes.tags/0.3.7
@@ -594,7 +594,7 @@ ADD_SUBDIRECTORY(src/client) | |||
ADD_SUBDIRECTORY(src/json) | |||
# ADD_SUBDIRECTORY(src/evdns) | |||
ADD_SUBDIRECTORY(src/plugins/custom) | |||
# ADD_SUBDIRECTORY(src/plugins/custom) | |||
SET(TOKENIZERSSRC src/tokenizers/tokenizers.c | |||
src/tokenizers/osb.c) | |||
@@ -812,6 +812,10 @@ FOREACH(LUA_CONF ${LUA_CONFIGS}) | |||
ENDIF(NOT EXISTS ${DESTDIR}/${ETC_PREFIX}/rspamd/lua/${LUA_CONF}) | |||
ENDFOREACH(LUA_CONF) | |||
# Manual pages | |||
INSTALL(FILES "doc/rspamd.8" DESTINATION man/man8) | |||
INSTALL(FILES "doc/rspamc.1" DESTINATION man/man1) | |||
# Perl lib | |||
IF(ENABLE_PERL MATCHES "ON") | |||
INSTALL(CODE "EXECUTE_PROCESS(COMMAND make install WORKING_DIRECTORY perl)") |
@@ -0,0 +1,219 @@ | |||
.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.07) | |||
.\" | |||
.\" Standard preamble: | |||
.\" ======================================================================== | |||
.de Sp \" Vertical space (when we can't use .PP) | |||
.if t .sp .5v | |||
.if n .sp | |||
.. | |||
.de Vb \" Begin verbatim text | |||
.ft CW | |||
.nf | |||
.ne \\$1 | |||
.. | |||
.de Ve \" End verbatim text | |||
.ft R | |||
.fi | |||
.. | |||
.\" Set up some character translations and predefined strings. \*(-- will | |||
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left | |||
.\" double quote, and \*(R" will give a right double quote. \*(C+ will | |||
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and | |||
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, | |||
.\" nothing in troff, for use with C<>. | |||
.tr \(*W- | |||
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' | |||
.ie n \{\ | |||
. ds -- \(*W- | |||
. ds PI pi | |||
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch | |||
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch | |||
. ds L" "" | |||
. ds R" "" | |||
. ds C` "" | |||
. ds C' "" | |||
'br\} | |||
.el\{\ | |||
. ds -- \|\(em\| | |||
. ds PI \(*p | |||
. ds L" `` | |||
. ds R" '' | |||
'br\} | |||
.\" | |||
.\" Escape single quotes in literal strings from groff's Unicode transform. | |||
.ie \n(.g .ds Aq \(aq | |||
.el .ds Aq ' | |||
.\" | |||
.\" If the F register is turned on, we'll generate index entries on stderr for | |||
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index | |||
.\" entries marked with X<> in POD. Of course, you'll have to process the | |||
.\" output yourself in some meaningful fashion. | |||
.ie \nF \{\ | |||
. de IX | |||
. tm Index:\\$1\t\\n%\t"\\$2" | |||
.. | |||
. nr % 0 | |||
. rr F | |||
.\} | |||
.el \{\ | |||
. de IX | |||
.. | |||
.\} | |||
.\" | |||
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). | |||
.\" Fear. Run. Save yourself. No user-serviceable parts. | |||
. \" fudge factors for nroff and troff | |||
.if n \{\ | |||
. ds #H 0 | |||
. ds #V .8m | |||
. ds #F .3m | |||
. ds #[ \f1 | |||
. ds #] \fP | |||
.\} | |||
.if t \{\ | |||
. ds #H ((1u-(\\\\n(.fu%2u))*.13m) | |||
. ds #V .6m | |||
. ds #F 0 | |||
. ds #[ \& | |||
. ds #] \& | |||
.\} | |||
. \" simple accents for nroff and troff | |||
.if n \{\ | |||
. ds ' \& | |||
. ds ` \& | |||
. ds ^ \& | |||
. ds , \& | |||
. ds ~ ~ | |||
. ds / | |||
.\} | |||
.if t \{\ | |||
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" | |||
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' | |||
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' | |||
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' | |||
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' | |||
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' | |||
.\} | |||
. \" troff and (daisy-wheel) nroff accents | |||
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' | |||
.ds 8 \h'\*(#H'\(*b\h'-\*(#H' | |||
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] | |||
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' | |||
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' | |||
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] | |||
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] | |||
.ds ae a\h'-(\w'a'u*4/10)'e | |||
.ds Ae A\h'-(\w'A'u*4/10)'E | |||
. \" corrections for vroff | |||
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' | |||
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' | |||
. \" for low resolution devices (crt and lpr) | |||
.if \n(.H>23 .if \n(.V>19 \ | |||
\{\ | |||
. ds : e | |||
. ds 8 ss | |||
. ds o a | |||
. ds d- d\h'-1'\(ga | |||
. ds D- D\h'-1'\(hy | |||
. ds th \o'bp' | |||
. ds Th \o'LP' | |||
. ds ae ae | |||
. ds Ae AE | |||
.\} | |||
.rm #[ #] #H #V #F C | |||
.\" ======================================================================== | |||
.\" | |||
.IX Title "rspamc 1" | |||
.TH rspamc 1 "2011-02-07" "rspamd-0.3.6" "Rspamd documentation" | |||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes | |||
.\" way too many mistakes in technical documents. | |||
.if n .ad l | |||
.nh | |||
.SH "RSPAMC" | |||
.IX Header "RSPAMC" | |||
rspamc \- a simple client for rspamd spam filtering system | |||
.SH "SYNOPSIS" | |||
.IX Header "SYNOPSIS" | |||
rspamc [\fB\-h\fR \fIhost[:port]\fR] [\fB\-p\fR] | |||
[\fB\-i\fR \fIip\fR] [\fB\-s\fR \fIstatfile\fR] [\fB\-w\fR \fIweight\fR] | |||
[\fB\-P\fR \fIpassword\fR] [\fB\-f\fR \fIflag\fR] [command] [file [file ...]] | |||
.PP | |||
rspamc [\fB\-\-help\fR] | |||
.SH "DESCRIPTION" | |||
.IX Header "DESCRIPTION" | |||
\&\fBRspamc\fR is a simple client for checking messages using rspamd or for learning rspamd by messages. | |||
\&\fBRspamc\fR has several mandatory options for learning: \fIpassword\fR and \fIstatfile\fR. | |||
.SH "OPTIONS" | |||
.IX Header "OPTIONS" | |||
.IP "\fB\-h\fR \fIhost[:port]\fR, \fB\-\-connect\fR \fIhost[:port]\fR" 4 | |||
.IX Item "-h host[:port], --connect host[:port]" | |||
Specify host and port for connecting to rspamd server. Default host is \fIlocalhost\fR and | |||
default port is \fI11333\fR for checking messages and \fI11334\fR for learning and statistic. | |||
.IP "\fB\-p\fR, \fB\-\-pass\-all\fR" 4 | |||
.IX Item "-p, --pass-all" | |||
Pass all filters when checking messages. Ignored in case of learning. | |||
.IP "\fB\-P\fR \fIpassword\fR, \fB\-\-password\fR \fIpassword\fR" 4 | |||
.IX Item "-P password, --password password" | |||
Specify controller's password. Mandatory option for learning. | |||
.IP "\fB\-s\fR \fIstatfile\fR, \fB\-\-statfile\fR \fIstatfile\fR" 4 | |||
.IX Item "-s statfile, --statfile statfile" | |||
Specify statfile's symbol to learn message. Mandatory option for learning. | |||
.IP "\fB\-i\fR \fIip\fR, \fB\-\-ip\fR \fIip\fR" 4 | |||
.IX Item "-i ip, --ip ip" | |||
Add \s-1IP\s0 header when scanning message. Useful for checking messages and emulating that client comes from | |||
specific \s-1IP\s0 address. | |||
.IP "\fB\-w\fR \fIweight\fR, \fB\-\-weight\fR \fIweight\fR" 4 | |||
.IX Item "-w weight, --weight weight" | |||
Weight of message for fuzzy operations. | |||
.IP "\fB\-f\fR \fIflag\fR, \fB\-\-flag\fR \fIflag\fR" 4 | |||
.IX Item "-f flag, --flag flag" | |||
Weight of message for fuzzy operations. | |||
.SH "RETURN VALUE" | |||
.IX Header "RETURN VALUE" | |||
On exit \fBrspamc\fR returns 0 if operation was successfull and error code otherwise. | |||
.SH "EXAMPLES" | |||
.IX Header "EXAMPLES" | |||
Check stdin: | |||
.PP | |||
.Vb 1 | |||
\& rspamc < some_file | |||
.Ve | |||
.PP | |||
Check files: | |||
.PP | |||
.Vb 1 | |||
\& rspamc symbols file1 file2 file3 | |||
.Ve | |||
.PP | |||
Learn files: | |||
.PP | |||
.Vb 1 | |||
\& rspamc \-P pass \-s BAYES_SPAM file1 file2 file3 | |||
.Ve | |||
.PP | |||
Add fuzzy hash to set 2: | |||
.PP | |||
.Vb 1 | |||
\& rspamc \-P pass \-f 2 \-w 10 fuzzy_add file1 file2 | |||
.Ve | |||
.PP | |||
Delete fuzzy hash from other server: | |||
.PP | |||
.Vb 1 | |||
\& rspamc \-P pass \-h hostname:11334 \-f 2 fuzzy_del file1 file2 | |||
.Ve | |||
.PP | |||
Get statistics: | |||
.PP | |||
.Vb 1 | |||
\& rspamc stat | |||
.Ve | |||
.SH "AUTHOR" | |||
.IX Header "AUTHOR" | |||
Vsevolod Stakhov <vsevolod@highsecure.ru> | |||
.SH "COPYRIGHT AND LICENSE" | |||
.IX Header "COPYRIGHT AND LICENSE" | |||
Copyright 2011 by Vsevolod Stakhov <vsevolod@highsecure.ru>. | |||
.PP | |||
This program is free software; you may redistribute it and/or modify it | |||
under the terms of \s-1BSD\s0 license. |
@@ -0,0 +1,96 @@ | |||
=head1 RSPAMC | |||
rspamc - a simple client for rspamd spam filtering system | |||
=head1 SYNOPSIS | |||
rspamc [B<-h> I<host[:port]>] [B<-p>] | |||
[B<-i> I<ip>] [B<-s> I<statfile>] [B<-w> I<weight>] | |||
[B<-P> I<password>] [B<-f> I<flag>] [command] [file [file ...]] | |||
rspamc [B<--help>] | |||
=head1 DESCRIPTION | |||
B<Rspamc> is a simple client for checking messages using rspamd or for learning rspamd by messages. | |||
B<Rspamc> has several mandatory options for learning: I<password> and I<statfile>. | |||
=head1 OPTIONS | |||
=over 4 | |||
=item B<-h> I<host[:port]>, B<--connect> I<host[:port]> | |||
Specify host and port for connecting to rspamd server. Default host is I<localhost> and | |||
default port is I<11333> for checking messages and I<11334> for learning and statistic. | |||
=item B<-p>, B<--pass-all> | |||
Pass all filters when checking messages. Ignored in case of learning. | |||
=item B<-P> I<password>, B<--password> I<password> | |||
Specify controller's password. Mandatory option for learning. | |||
=item B<-s> I<statfile>, B<--statfile> I<statfile> | |||
Specify statfile's symbol to learn message. Mandatory option for learning. | |||
=item B<-i> I<ip>, B<--ip> I<ip> | |||
Add IP header when scanning message. Useful for checking messages and emulating that client comes from | |||
specific IP address. | |||
=item B<-w> I<weight>, B<--weight> I<weight> | |||
Weight of message for fuzzy operations. | |||
=item B<-f> I<flag>, B<--flag> I<flag> | |||
Weight of message for fuzzy operations. | |||
=back | |||
=head1 RETURN VALUE | |||
On exit B<rspamc> returns 0 if operation was successfull and error code otherwise. | |||
=head1 EXAMPLES | |||
Check stdin: | |||
rspamc < some_file | |||
Check files: | |||
rspamc symbols file1 file2 file3 | |||
Learn files: | |||
rspamc -P pass -s BAYES_SPAM file1 file2 file3 | |||
Add fuzzy hash to set 2: | |||
rspamc -P pass -f 2 -w 10 fuzzy_add file1 file2 | |||
Delete fuzzy hash from other server: | |||
rspamc -P pass -h hostname:11334 -f 2 fuzzy_del file1 file2 | |||
Get statistics: | |||
rspamc stat | |||
=head1 AUTHOR | |||
Vsevolod Stakhov <vsevolod@highsecure.ru> | |||
=head1 COPYRIGHT AND LICENSE | |||
Copyright 2011 by Vsevolod Stakhov <vsevolod@highsecure.ru>. | |||
This program is free software; you may redistribute it and/or modify it | |||
under the terms of BSD license. | |||
=cut |
@@ -0,0 +1,191 @@ | |||
.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.07) | |||
.\" | |||
.\" Standard preamble: | |||
.\" ======================================================================== | |||
.de Sp \" Vertical space (when we can't use .PP) | |||
.if t .sp .5v | |||
.if n .sp | |||
.. | |||
.de Vb \" Begin verbatim text | |||
.ft CW | |||
.nf | |||
.ne \\$1 | |||
.. | |||
.de Ve \" End verbatim text | |||
.ft R | |||
.fi | |||
.. | |||
.\" Set up some character translations and predefined strings. \*(-- will | |||
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left | |||
.\" double quote, and \*(R" will give a right double quote. \*(C+ will | |||
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and | |||
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, | |||
.\" nothing in troff, for use with C<>. | |||
.tr \(*W- | |||
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' | |||
.ie n \{\ | |||
. ds -- \(*W- | |||
. ds PI pi | |||
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch | |||
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch | |||
. ds L" "" | |||
. ds R" "" | |||
. ds C` "" | |||
. ds C' "" | |||
'br\} | |||
.el\{\ | |||
. ds -- \|\(em\| | |||
. ds PI \(*p | |||
. ds L" `` | |||
. ds R" '' | |||
'br\} | |||
.\" | |||
.\" Escape single quotes in literal strings from groff's Unicode transform. | |||
.ie \n(.g .ds Aq \(aq | |||
.el .ds Aq ' | |||
.\" | |||
.\" If the F register is turned on, we'll generate index entries on stderr for | |||
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index | |||
.\" entries marked with X<> in POD. Of course, you'll have to process the | |||
.\" output yourself in some meaningful fashion. | |||
.ie \nF \{\ | |||
. de IX | |||
. tm Index:\\$1\t\\n%\t"\\$2" | |||
.. | |||
. nr % 0 | |||
. rr F | |||
.\} | |||
.el \{\ | |||
. de IX | |||
.. | |||
.\} | |||
.\" | |||
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). | |||
.\" Fear. Run. Save yourself. No user-serviceable parts. | |||
. \" fudge factors for nroff and troff | |||
.if n \{\ | |||
. ds #H 0 | |||
. ds #V .8m | |||
. ds #F .3m | |||
. ds #[ \f1 | |||
. ds #] \fP | |||
.\} | |||
.if t \{\ | |||
. ds #H ((1u-(\\\\n(.fu%2u))*.13m) | |||
. ds #V .6m | |||
. ds #F 0 | |||
. ds #[ \& | |||
. ds #] \& | |||
.\} | |||
. \" simple accents for nroff and troff | |||
.if n \{\ | |||
. ds ' \& | |||
. ds ` \& | |||
. ds ^ \& | |||
. ds , \& | |||
. ds ~ ~ | |||
. ds / | |||
.\} | |||
.if t \{\ | |||
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" | |||
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' | |||
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' | |||
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' | |||
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' | |||
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' | |||
.\} | |||
. \" troff and (daisy-wheel) nroff accents | |||
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' | |||
.ds 8 \h'\*(#H'\(*b\h'-\*(#H' | |||
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] | |||
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' | |||
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' | |||
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] | |||
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] | |||
.ds ae a\h'-(\w'a'u*4/10)'e | |||
.ds Ae A\h'-(\w'A'u*4/10)'E | |||
. \" corrections for vroff | |||
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' | |||
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' | |||
. \" for low resolution devices (crt and lpr) | |||
.if \n(.H>23 .if \n(.V>19 \ | |||
\{\ | |||
. ds : e | |||
. ds 8 ss | |||
. ds o a | |||
. ds d- d\h'-1'\(ga | |||
. ds D- D\h'-1'\(hy | |||
. ds th \o'bp' | |||
. ds Th \o'LP' | |||
. ds ae ae | |||
. ds Ae AE | |||
.\} | |||
.rm #[ #] #H #V #F C | |||
.\" ======================================================================== | |||
.\" | |||
.IX Title "rspamd 8" | |||
.TH rspamd 8 "2011-02-07" "rspamd-0.3.6" "Rspamd documentation" | |||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes | |||
.\" way too many mistakes in technical documents. | |||
.if n .ad l | |||
.nh | |||
.SH "RSPAMD" | |||
.IX Header "RSPAMD" | |||
rspamd \- main daemon for rspamd spam filtering system | |||
.SH "SYNOPSIS" | |||
.IX Header "SYNOPSIS" | |||
rspamd [\fB\-c\fR \fIconfig_file\fR] [\fB\-f\fR] | |||
[\fB\-u\fR \fIuser\fR] [\fB\-g\fR \fIgroup\fR] [\fB\-p\fR \fIpidfile\fR] | |||
[\fB\-t\fR] [\fB\-d\fR] | |||
.PP | |||
rspamd [\fB\-\-help\fR] | |||
.PP | |||
rspamd [\fB\-t\fR] | |||
.PP | |||
rspamd [\fB\-C\fR] | |||
.SH "DESCRIPTION" | |||
.IX Header "DESCRIPTION" | |||
\&\fBRspamd\fR filtering system is designed to be fast, modular and easily extendable system. | |||
\&\fBRspamd\fR core is written in C language using event driven paradigma. | |||
Plugins for \fBrspamd\fR can be written in lua. | |||
\&\fBRspamd\fR is designed to process connections completely asynchronous and do not block anywhere in code. | |||
.SH "OPTIONS" | |||
.IX Header "OPTIONS" | |||
.IP "\fB\-c\fR \fIconfig_file\fR, \fB\-\-config\fR \fIconfig_file\fR" 4 | |||
.IX Item "-c config_file, --config config_file" | |||
Specify the path where rspamd config is placed. Default is rspamd.xml. | |||
.IP "\fB\-u\fR \fIuser\fR, \fB\-\-user\fR \fIuser\fR" 4 | |||
.IX Item "-u user, --user user" | |||
Specify user rspamd run as. It is possible only when rspamd is launched by super-user as it | |||
calls \fIsetuid\fR\|(2) after spawning workers. | |||
.IP "\fB\-g\fR \fIgroup\fR, \fB\-\-group\fR \fIgroup\fR" 4 | |||
.IX Item "-g group, --group group" | |||
Specify group rspamd run as. | |||
.IP "\fB\-p\fR \fIpidfile\fR, \fB\-\-pidfile\fR \fIpidfile\fR" 4 | |||
.IX Item "-p pidfile, --pidfile pidfile" | |||
Path to pid file where rspamd pid would be stored. Directory containing pidfile must be | |||
writeable by \fBrspamd\fR. | |||
.IP "\fB\-f\fR, \fB\-\-no\-fork\fR" 4 | |||
.IX Item "-f, --no-fork" | |||
Do not daemonize after launch. Usable for debugging purposes. | |||
.IP "\fB\-t\fR, \fB\-\-config\-test\fR" 4 | |||
.IX Item "-t, --config-test" | |||
Just perform test of configuration. Return zero exit code when configuration is \s-1OK\s0. | |||
.IP "\fB\-C\fR, \fB\-\-counters\fR" 4 | |||
.IX Item "-C, --counters" | |||
Show counters for all symbols. Usable when symbols cache is saved. | |||
.IP "\fB\-d\fR, \fB\-\-debug\fR" 4 | |||
.IX Item "-d, --debug" | |||
Turn on debugging mode in logging. | |||
.SH "RETURN VALUE" | |||
.IX Header "RETURN VALUE" | |||
On exit \fBrspamd\fR returns 0 if operation was successfull and error code otherwise. | |||
.SH "AUTHOR" | |||
.IX Header "AUTHOR" | |||
Vsevolod Stakhov <vsevolod@highsecure.ru> | |||
.SH "COPYRIGHT AND LICENSE" | |||
.IX Header "COPYRIGHT AND LICENSE" | |||
Copyright 2011 by Vsevolod Stakhov <vsevolod@highsecure.ru>. | |||
.PP | |||
This program is free software; you may redistribute it and/or modify it | |||
under the terms of \s-1BSD\s0 license. |
@@ -0,0 +1,79 @@ | |||
=head1 RSPAMD | |||
rspamd - main daemon for rspamd spam filtering system | |||
=head1 SYNOPSIS | |||
rspamd [B<-c> I<config_file>] [B<-f>] | |||
[B<-u> I<user>] [B<-g> I<group>] [B<-p> I<pidfile>] | |||
[B<-t>] [B<-d>] | |||
rspamd [B<--help>] | |||
rspamd [B<-t>] | |||
rspamd [B<-C>] | |||
=head1 DESCRIPTION | |||
B<Rspamd> filtering system is designed to be fast, modular and easily extendable system. | |||
B<Rspamd> core is written in C language using event driven paradigma. | |||
Plugins for B<rspamd> can be written in lua. | |||
B<Rspamd> is designed to process connections completely asynchronous and do not block anywhere in code. | |||
=head1 OPTIONS | |||
=over 4 | |||
=item B<-c> I<config_file>, B<--config> I<config_file> | |||
Specify the path where rspamd config is placed. Default is rspamd.xml. | |||
=item B<-u> I<user>, B<--user> I<user> | |||
Specify user rspamd run as. It is possible only when rspamd is launched by super-user as it | |||
calls setuid(2) after spawning workers. | |||
=item B<-g> I<group>, B<--group> I<group> | |||
Specify group rspamd run as. | |||
=item B<-p> I<pidfile>, B<--pidfile> I<pidfile> | |||
Path to pid file where rspamd pid would be stored. Directory containing pidfile must be | |||
writeable by B<rspamd>. | |||
=item B<-f>, B<--no-fork> | |||
Do not daemonize after launch. Usable for debugging purposes. | |||
=item B<-t>, B<--config-test> | |||
Just perform test of configuration. Return zero exit code when configuration is OK. | |||
=item B<-C>, B<--counters> | |||
Show counters for all symbols. Usable when symbols cache is saved. | |||
=item B<-d>, B<--debug> | |||
Turn on debugging mode in logging. | |||
=back | |||
=head1 RETURN VALUE | |||
On exit B<rspamd> returns 0 if operation was successfull and error code otherwise. | |||
=head1 AUTHOR | |||
Vsevolod Stakhov <vsevolod@highsecure.ru> | |||
=head1 COPYRIGHT AND LICENSE | |||
Copyright 2011 by Vsevolod Stakhov <vsevolod@highsecure.ru>. | |||
This program is free software; you may redistribute it and/or modify it | |||
under the terms of BSD license. | |||
=cut |
@@ -112,7 +112,7 @@ strip_html_tags (struct worker_task *task, memory_pool_t * pool, struct mime_tex | |||
case 1: /* HTML/XML */ | |||
lc = '>'; | |||
in_q = state = 0; | |||
erase = !add_html_node (task, pool, part, tbegin, p - tbegin - 1, &level_ptr); | |||
erase = !add_html_node (task, pool, part, tbegin, p - tbegin, &level_ptr); | |||
break; | |||
case 2: /* PHP */ |