aboutsummaryrefslogtreecommitdiffstats
path: root/main.h
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@rambler-co.ru>2008-08-22 18:15:02 +0400
committerVsevolod Stakhov <vsevolod@rambler-co.ru>2008-08-22 18:15:02 +0400
commita4473aedcb7c49b494112bce63d06c98d88e0e0d (patch)
tree17c39ecf0b973dd3b74db3b02d678944eac649d9 /main.h
parentf3b6712e04fd993caccaa18e425639d85d81b1eb (diff)
downloadrspamd-a4473aedcb7c49b494112bce63d06c98d88e0e0d.tar.gz
rspamd-a4473aedcb7c49b494112bce63d06c98d88e0e0d.zip
* Add implementation of save point for async events in rspamd filters
Diffstat (limited to 'main.h')
-rw-r--r--main.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/main.h b/main.h
index fdf22b8ba..6e973ef20 100644
--- a/main.h
+++ b/main.h
@@ -93,6 +93,13 @@ struct mime_part {
TAILQ_ENTRY (mime_part) next;
};
+struct save_point {
+ enum { C_FILTER, PERL_FILTER } save_type;
+ void *entry;
+ void *chain;
+ unsigned saved:1;
+};
+
struct worker_task {
struct rspamd_worker *worker;
enum {
@@ -101,6 +108,7 @@ struct worker_task {
READ_MESSAGE,
WRITE_REPLY,
WRITE_ERROR,
+ WAIT_FILTER,
} state;
size_t content_length;
char *helo;
@@ -126,6 +134,7 @@ struct worker_task {
/* Results of all chains */
TAILQ_HEAD (chainsq, chain_result) chain_results;
struct config_file *cfg;
+ struct save_point save;
};
struct module_ctx {
@@ -142,7 +151,7 @@ struct c_module {
};
void start_worker (struct rspamd_worker *worker, int listen_sock);
-
+int process_filters (struct worker_task *task);
#endif