COMMAND ../utils/gen-modules.sh ${PLUGINSSRC}
WORKING_DIRECTORY src)
-ADD_CUSTOM_TARGET(perlxs ALL
+ADD_CUSTOM_COMMAND(OUTPUT perl/Makefile
COMMAND ${PERL_EXECUTABLE} ./Makefile.PL
+ WORKING_DIRECTORY perl)
+ADD_CUSTOM_TARGET(perlxs
COMMAND make
+ DEPENDS perl/Makefile
WORKING_DIRECTORY perl
VERBATIM)
CONFIGURE_FILE(config.h.in src/config.h)
CONFIGURE_FILE(perl/Makefile.PL.in perl/Makefile.PL)
+CONFIGURE_FILE(rspamc.pl.in rspamc.pl @ONLY)
ADD_EXECUTABLE(rspamd ${RSPAMDSRC} ${CONTRIBSRC} ${TOKENIZERSSRC}
${CLASSIFIERSSRC} ${PLUGINSSRC} ${YACC_OUTPUT}
TARGET_LINK_LIBRARIES(rspamd dynaloader)
ENDIF(PERL_DYNALOADER)
TARGET_LINK_LIBRARIES(rspamd ${GMIME2_LIBRARIES})
+ADD_DEPENDENCIES(rspamd perlxs)
ADD_EXECUTABLE(test/rspamd-test ${TESTDEPENDS} ${CONTRIBSRC} ${TESTSRC})
SET_TARGET_PROPERTIES(test/rspamd-test PROPERTIES LINKER_LANGUAGE C)
use Socket qw(:DEFAULT :crlf);
my %cfg = (
- 'conf_file' => './rspamd.conf',
+ 'conf_file' => '@CMAKE_INSTALL_PREFIX@/etc/rspamd.conf',
'command' => 'SYMBOLS',
'host' => 'localhost',
'port' => '11333',
my $ctrl = 0;
while (<CONF>) {
- if ($_ =~ /control\s*{/i) {
+ if ($_ =~ /control\s*{/i || $_ =~ /lmtp\s*{/i || $_ =~ /delivery\s*{/i) {
$ctrl = 1;
}
if ($ctrl && $_ =~ /}/) {
"winnow" = 5.5;
};
+# Options for lmtp worker
lmtp {
enabled = yes;
+ # Bind socket for lmtp interface
bind_socket = localhost:11335;
+ # Metric that is considered as main. If we have spam result on
+ # this metric, lmtp delivery would be failed
+ metric = "default";
};
delivery {
enabled = yes;
+ # Path to delivery agent, %f is expanded as mail from address and %r
+ # is expanded as recipient address
+ # Expample: agent = "/usr/local/bin/procmail -f %f -d %r"
agent = "/dev/null";
+ # Bind socket for lmtp interface
+ # Example: bind_socket = localhost:25
+
+ # Whether we should use lmtp for MTA delivery
+ lmtp = no;
+};
+
+# SURBL module params, note that single quotes are mandatory here
+.module 'surbl' {
+ # Address to redirector in host:port format
+ redirector = "localhost:8080";
+ # Connect timeout for redirector
+ redirector_connect_timeout = "1s";
+ # IO timeout for redirector (may be usefull to set this value rather big)
+ redirector_read_timeout = "10s";
+ # This is suffix for surbl dns requests
+ suffix = "multi.surbl.org";
+ # Metric for surbl module
+ metric = "default";
+ # List of public known hostings (for which we should use 3 components of domain name instead of 2)
+ hostings = "narod.ru,pp.ru,org.ru,net.ru";
+ # Whitelisted urls
+ whitelist = "highsecure.ru,freebsd.org";
};
url_filters = "surbl";
<module>\n /* ignore EOL */;
<module>[ \t]+ /* ignore whitespace */;
-<module>\'[a-zA-Z0-9_-]\' yylval.string=strdup(yytext + 1); yylval.string[strlen(yylval.string) - 1] = '\0'; return MODULE_OPT;
+<module>^[ \t]*#.* /* ignore comments */;
+<module>\'[a-zA-Z0-9_-]+\' yylval.string=strdup(yytext + 1); yylval.string[strlen(yylval.string) - 1] = '\0'; return MODULE_OPT;
<module>\{ return OBRACE;
-<module>\} return EBRACE;
+<module>\} BEGIN(INITIAL); return EBRACE;
<module>\; return SEMICOLON;
-<module>[a-zA-Z0-9_-] yylval.string=strdup(yytext); return PARAM;
+<module>= return EQSIGN;
+<module>[a-zA-Z0-9_-]+ yylval.string=strdup(yytext); return PARAM;
<module>\$[a-zA-Z_][a-zA-Z0-9_]+ yylval.string=strdup(yytext + 1); return VARIABLE;
<module>\"[^"]+\" yylval.string=strdup(yytext + 1); yylval.string[strlen(yylval.string) - 1] = '\0'; return QUOTEDSTRING;