diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/cfg_file.y | 5 | ||||
-rw-r--r-- | src/cfg_utils.c | 1 | ||||
-rw-r--r-- | src/filter.c | 9 | ||||
-rw-r--r-- | src/main.c | 14 | ||||
-rw-r--r-- | src/util.c | 4 | ||||
-rw-r--r-- | src/worker.c | 6 |
6 files changed, 31 insertions, 8 deletions
diff --git a/src/cfg_file.y b/src/cfg_file.y index 7e86c3d9f..a12e047c4 100644 --- a/src/cfg_file.y +++ b/src/cfg_file.y @@ -385,6 +385,7 @@ requirebody: requirecmd: MODULE EQSIGN QUOTEDSTRING { +#ifndef WITHOUT_PERL struct stat st; struct perl_module *cur; if (stat ($3, &st) == -1) { @@ -398,6 +399,10 @@ requirecmd: } cur->path = $3; LIST_INSERT_HEAD (&cfg->perl_modules, cur, next); +#else + yyerror ("require command is not available when perl support is not compiled"); + YYERROR; +#endif } ; diff --git a/src/cfg_utils.c b/src/cfg_utils.c index a9be83545..b7c540ec4 100644 --- a/src/cfg_utils.c +++ b/src/cfg_utils.c @@ -25,6 +25,7 @@ #include "config.h" #include <math.h> + #include "cfg_file.h" #include "main.h" #include "filter.h" diff --git a/src/filter.c b/src/filter.c index d273a21ff..801b2f8bb 100644 --- a/src/filter.c +++ b/src/filter.c @@ -32,12 +32,15 @@ #include "main.h" #include "message.h" #include "cfg_file.h" -#include "perl.h" #include "util.h" #include "expressions.h" #include "classifiers/classifiers.h" #include "tokenizers/tokenizers.h" +#ifndef WITHOUT_PERL +#include "perl.h" +#endif + void insert_result (struct worker_task *task, const char *metric_name, const char *symbol, double flag, GList *opts) { @@ -168,6 +171,7 @@ call_filter_by_name (struct worker_task *task, const char *name, enum filter_typ break; case PERL_FILTER: res = 1; +#ifndef WITHOUT_PERL switch (sc_type) { case SCRIPT_HEADER: perl_call_header_filter (name, task); @@ -182,6 +186,9 @@ call_filter_by_name (struct worker_task *task, const char *name, enum filter_typ perl_call_message_filter (name, task); break; } +#else + msg_err ("call_filter_by_name: trying to call perl function while perl support is disabled %s", name); +#endif break; } diff --git a/src/main.c b/src/main.c index 90bf92156..bbe24dd1b 100644 --- a/src/main.c +++ b/src/main.c @@ -26,9 +26,12 @@ #include "main.h" #include "cfg_file.h" #include "util.h" -#include "perl.h" #include "lmtp.h" +#ifndef WITHOUT_PERL +#include "perl.h" +#endif + /* 2 seconds to fork new process in place of dead one */ #define SOFT_FORK_TIME 2 @@ -45,11 +48,13 @@ sig_atomic_t got_alarm; extern int yynerrs; extern FILE *yyin; -extern void xs_init(pTHX); static int dump_vars = 0; +#ifndef WITHOUT_PERL +extern void xs_init(pTHX); extern PerlInterpreter *perl_interpreter; +#endif /* List of workers that are pending to start */ static GList *workers_pending = NULL; @@ -378,7 +383,9 @@ main (int argc, char **argv, char **env) struct rspamd_worker *cur, *cur_tmp, *active_worker; FILE *f; pid_t wrk; +#ifndef WITHOUT_PERL char *args[] = { "", "-e", "0", NULL }; +#endif rspamd = (struct rspamd_main *)g_malloc (sizeof (struct rspamd_main)); bzero (rspamd, sizeof (struct rspamd_main)); @@ -521,6 +528,7 @@ main (int argc, char **argv, char **env) exit (-errno); } +#ifndef WITHOUT_PERL /* Init perl interpreter */ dTHXa (perl_interpreter); PERL_SYS_INIT3 (&argc, &argv, &env); @@ -533,6 +541,8 @@ main (int argc, char **argv, char **env) PERL_SET_CONTEXT (perl_interpreter); perl_construct (perl_interpreter); perl_parse (perl_interpreter, xs_init, 3, args, NULL); +#endif + /* Block signals to use sigsuspend in future */ sigprocmask(SIG_BLOCK, &signals.sa_mask, NULL); diff --git a/src/util.c b/src/util.c index 64f8910e6..bedb4114d 100644 --- a/src/util.c +++ b/src/util.c @@ -172,10 +172,10 @@ make_unix_socket (const char *path, struct sockaddr_un *addr, gboolean is_server } if (is_server) { setsockopt (fd, SOL_SOCKET, SO_REUSEADDR, (const void *) &on, sizeof(int)); - r = bind (fd, (struct sockaddr *)&sin, sizeof (struct sockaddr_in)); + r = bind (fd, (struct sockaddr *)addr, sizeof (struct sockaddr_in)); } else { - r = connect (fd, (struct sockaddr *)&sin, sizeof (struct sockaddr_in)); + r = connect (fd, (struct sockaddr *)addr, sizeof (struct sockaddr_in)); } if (r == -1) { diff --git a/src/worker.c b/src/worker.c index 02fcc8707..1f1548dd1 100644 --- a/src/worker.c +++ b/src/worker.c @@ -36,15 +36,15 @@ #include "modules.h" #include "message.h" +#ifndef WITHOUT_PERL #include <EXTERN.h> /* from the Perl distribution */ #include <perl.h> /* from the Perl distribution */ -#define TASK_POOL_SIZE 4095 +extern PerlInterpreter *perl_interpreter; +#endif static struct timeval io_tv; -extern PerlInterpreter *perl_interpreter; - static void write_socket (void *arg); static |