]> source.dussan.org Git - rspamd.git/commitdiff
Create statfiles using learn_spam function for bayes classifier.
authorVsevolod Stakhov <vsevolod@rambler-co.ru>
Mon, 18 Jul 2011 13:15:33 +0000 (17:15 +0400)
committerVsevolod Stakhov <vsevolod@rambler-co.ru>
Mon, 18 Jul 2011 13:15:33 +0000 (17:15 +0400)
Fix call of pre callbacks for a classifier.

src/classifiers/bayes.c
src/lua/lua_classifier.c

index 5998d0fdb57a09ff748d6280be5d503c1179ff1e..f45f84a3809d180fb8c7359ea2b79d372e5f78cc 100644 (file)
@@ -397,6 +397,24 @@ bayes_learn_spam (struct classifier_ctx* ctx, statfile_pool_t *pool,
                if ((file = statfile_pool_is_open (pool, st->path)) == NULL) {
                        if ((file = statfile_pool_open (pool, st->path, st->size, FALSE)) == NULL) {
                                msg_warn ("cannot open %s", st->path);
+                               if (statfile_pool_create (pool, st->path, st->size) == -1) {
+                                       msg_err ("cannot create statfile %s", st->path);
+                                       g_set_error (err,
+                                                       bayes_error_quark(),            /* error domain */
+                                                       1,                                      /* error code */
+                                                       "cannot create statfile: %s",
+                                                       st->path);
+                                       return FALSE;
+                               }
+                               if ((file = statfile_pool_open (pool, st->path, st->size, FALSE)) == NULL) {
+                                       g_set_error (err,
+                                                       bayes_error_quark(),            /* error domain */
+                                                       1,                                      /* error code */
+                                                       "cannot open statfile %s after creation",
+                                                       st->path);
+                                       msg_err ("cannot open statfile %s after creation", st->path);
+                                       return FALSE;
+                               }
                                cur = g_list_next (cur);
                                continue;
                        }
index 511767680dcee1637675ba99fcc34c25d56817c6..901d6cff5f2849ef4911df467a976e6b997c890c 100644 (file)
@@ -144,7 +144,7 @@ call_classifier_pre_callbacks (struct classifier_config *ccf, struct worker_task
                        lua_pushstring (L, ccf->classifier->name);
                        lua_gettable (L, -2);
                        /* Function is now on top */
-                       if (lua_isfunction (L, 1)) {
+                       if (lua_isfunction (L, -1)) {
                                res = call_classifier_pre_callback (ccf, task, L, is_learn, is_spam);
                        }
                }