]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
* Fix dependencies on perlxs target (do not rebuild it constantly)
authorVsevolod Stakhov <vsevolod@rambler-co.ru>
Fri, 27 Feb 2009 09:44:18 +0000 (12:44 +0300)
committerVsevolod Stakhov <vsevolod@rambler-co.ru>
Fri, 27 Feb 2009 09:44:18 +0000 (12:44 +0300)
* Fix rspamc to understand lmtp and delivery sections in config
* Fix parser's states when reading module options
* Add sample config for surbl module with comments

--HG--
rename : rspamc.pl => rspamc.pl.in

CMakeLists.txt
rspamc.pl.in [moved from rspamc.pl with 97% similarity]
rspamd.conf.sample
src/cfg_file.l

index 9928c1757b8dde0fa58473ba834af028faaa71ae..275562b63d641aee207fad3f0f98050011dec10a 100644 (file)
@@ -270,14 +270,18 @@ ADD_CUSTOM_COMMAND(OUTPUT src/modules.c
                                        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} 
@@ -292,6 +296,7 @@ IF(PERL_DYNALOADER)
        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)
similarity index 97%
rename from rspamc.pl
rename to rspamc.pl.in
index e04a5bfcecc9ef4a769b629f6ef2946070a224fc..8caeb28a386ca59cf7eee30ce7eda2fec082ecc4 100755 (executable)
--- a/rspamc.pl
@@ -10,7 +10,7 @@
 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',
@@ -33,7 +33,7 @@ sub parse_config {
 
     my $ctrl = 0;
     while (<CONF>) {
-        if ($_ =~ /control\s*{/i) {
+        if ($_ =~ /control\s*{/i || $_ =~ /lmtp\s*{/i || $_ =~ /delivery\s*{/i) {
             $ctrl = 1;
         }
         if ($ctrl && $_ =~ /}/) {
index 41b44ccdda988cb74cb866071324a93753604145..b440a3325408dc68d7c58e15594b7d7a90f155da 100644 (file)
@@ -76,14 +76,45 @@ factors {
        "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";
index d2810c5bb1ce01f7e25d97cb0e9eb77750d5f74c..b28bbd26365309a5e2b8d6ca39ca8e4961a75216 100644 (file)
@@ -133,11 +133,13 @@ yes|YES|no|NO|[yY]|[nN]                   yylval.flag=parse_flag(yytext); return FLAG;
 
 <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;