From c6e6ea88a2e03609b0be013d2df0de1c6062712f Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Fri, 18 Dec 2009 17:48:06 +0300 Subject: * Add limits support to each worker (max open files and max core size) * Fix dependency on lex and yacc sources --- src/plugins/spf.c | 46 ++++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 22 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/spf.c b/src/plugins/spf.c index b597da1e5..581f08b84 100644 --- a/src/plugins/spf.c +++ b/src/plugins/spf.c @@ -144,28 +144,30 @@ spf_plugin_callback (struct spf_record *record, struct worker_task *task) s = ntohl (task->from_addr.s_addr); while (cur) { addr = cur->data; - if (addr->mask == 0) { - m = 0; - } - else { - m = G_MAXUINT32 << (32 - addr->mask); - } - if ((s & m) == (addr->addr & m)) { - switch (addr->mech) { - case SPF_FAIL: - insert_result (task, spf_module_ctx->metric, spf_module_ctx->symbol_fail, 1, g_list_prepend (NULL, addr->spf_string)); - break; - case SPF_SOFT_FAIL: - case SPF_NEUTRAL: - insert_result (task, spf_module_ctx->metric, spf_module_ctx->symbol_softfail, 1, g_list_prepend (NULL, addr->spf_string)); - break; - default: - insert_result (task, spf_module_ctx->metric, spf_module_ctx->symbol_allow, 1, g_list_prepend (NULL, addr->spf_string)); - break; - } - /* Stop parsing */ - break; - } + if (addr != NULL) { + if (addr->mask == 0) { + m = 0; + } + else { + m = G_MAXUINT32 << (32 - addr->mask); + } + if ((s & m) == (addr->addr & m)) { + switch (addr->mech) { + case SPF_FAIL: + insert_result (task, spf_module_ctx->metric, spf_module_ctx->symbol_fail, 1, g_list_prepend (NULL, addr->spf_string)); + break; + case SPF_SOFT_FAIL: + case SPF_NEUTRAL: + insert_result (task, spf_module_ctx->metric, spf_module_ctx->symbol_softfail, 1, g_list_prepend (NULL, addr->spf_string)); + break; + default: + insert_result (task, spf_module_ctx->metric, spf_module_ctx->symbol_allow, 1, g_list_prepend (NULL, addr->spf_string)); + break; + } + /* Stop parsing */ + break; + } + } cur = g_list_next (cur); } } -- cgit v1.2.3