diff options
author | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2008-11-01 18:01:05 +0300 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2008-11-01 18:01:05 +0300 |
commit | 2aa9c74f1c449da92f6faf870f8cc801a83bb08b (patch) | |
tree | 33f0f941f08583fd0c4c3653cadde8d6ce8426c2 /main.h | |
parent | cc5343692b448c27485a24ea7f1b24d714bb82f6 (diff) | |
download | rspamd-2aa9c74f1c449da92f6faf870f8cc801a83bb08b.tar.gz rspamd-2aa9c74f1c449da92f6faf870f8cc801a83bb08b.zip |
* Reorganize structure of source files
* Adopt build system for new structure
--HG--
rename : cfg_file.h => src/cfg_file.h
rename : cfg_file.l => src/cfg_file.l
rename : cfg_file.y => src/cfg_file.y
rename : cfg_utils.c => src/cfg_utils.c
rename : controller.c => src/controller.c
rename : filter.c => src/filter.c
rename : filter.h => src/filter.h
rename : fstring.c => src/fstring.c
rename : fstring.h => src/fstring.h
rename : main.c => src/main.c
rename : main.h => src/main.h
rename : mem_pool.c => src/mem_pool.c
rename : mem_pool.h => src/mem_pool.h
rename : memcached-test.c => src/memcached-test.c
rename : memcached.c => src/memcached.c
rename : memcached.h => src/memcached.h
rename : perl.c => src/perl.c
rename : perl.h => src/perl.h
rename : plugins/regexp.c => src/plugins/regexp.c
rename : plugins/surbl.c => src/plugins/surbl.c
rename : protocol.c => src/protocol.c
rename : protocol.h => src/protocol.h
rename : upstream.c => src/upstream.c
rename : upstream.h => src/upstream.h
rename : url.c => src/url.c
rename : url.h => src/url.h
rename : util.c => src/util.c
rename : util.h => src/util.h
rename : worker.c => src/worker.c
Diffstat (limited to 'main.h')
-rw-r--r-- | main.h | 201 |
1 files changed, 0 insertions, 201 deletions
diff --git a/main.h b/main.h deleted file mode 100644 index efb716ab0..000000000 --- a/main.h +++ /dev/null @@ -1,201 +0,0 @@ -#ifndef RPOP_MAIN_H -#define RPOP_MAIN_H - -#include "config.h" - -#include <sys/types.h> -#include <sys/socket.h> -#ifndef HAVE_OWN_QUEUE_H -#include <sys/queue.h> -#else -#include "queue.h" -#endif -#include <sys/time.h> - -#include <sys/un.h> -#include <netinet/in.h> -#include <arpa/inet.h> - -#include <signal.h> -#include <event.h> - -#include "fstring.h" -#include "mem_pool.h" -#include "url.h" -#include "memcached.h" -#include "protocol.h" -#include "filter.h" - -#include <glib.h> -#include <gmime/gmime.h> - -/* Default values */ -#define FIXED_CONFIG_FILE "./rspamd.conf" -/* Time in seconds to exit for old worker */ -#define SOFT_SHUTDOWN_TIME 60 -/* Default metric name */ -#define DEFAULT_METRIC "default" - -/* Logging in postfix style */ -#define msg_err g_error -#define msg_warn g_warning -#define msg_info g_message -#define msg_debug g_debug - -/* Process type: main or worker */ -enum process_type { - TYPE_MAIN, - TYPE_WORKER, - TYPE_CONTROLLER, -}; - -/* Filter type */ -enum script_type { - SCRIPT_HEADER, - SCRIPT_MIME, - SCRIPT_URL, - SCRIPT_MESSAGE, -}; - -/* Logic expression */ -struct expression { - enum { EXPR_OPERAND, EXPR_OPERATION } type; - union { - void *operand; - char operation; - } content; - struct expression *next; -}; - -/* Worker process structure */ -struct rspamd_worker { - pid_t pid; - char is_initialized; - char is_dying; - TAILQ_ENTRY (rspamd_worker) next; - struct rspamd_main *srv; - enum process_type type; - struct event sig_ev; - struct event bind_ev; -}; - -struct pidfh; -struct config_file; - -/* Server statistics */ -struct rspamd_stat { - unsigned int messages_scanned; - unsigned int messages_spam; - unsigned int messages_ham; - unsigned int connections_count; - unsigned int control_connections_count; - unsigned int messages_learned; -}; - -/* Struct that determine main server object (for logging purposes) */ -struct rspamd_main { - struct config_file *cfg; - pid_t pid; - /* Pid file structure */ - struct pidfh *pfh; - enum process_type type; - unsigned int ev_initialized; - struct rspamd_stat *stat; - - memory_pool_t *server_pool; - - TAILQ_HEAD (workq, rspamd_worker) workers; -}; - -struct mime_part { - GMimeContentType *type; - GByteArray *content; - TAILQ_ENTRY (mime_part) next; -}; - -struct save_point { - void *entry; - enum script_type type; - unsigned int saved; -}; - -/* Control session */ -struct controller_session { - struct rspamd_worker *worker; - int sock; - /* Access to authorized commands */ - int authorized; - memory_pool_t *session_pool; - struct bufferevent *bev; - struct config_file *cfg; -}; - -/* Worker task structure */ -struct worker_task { - struct rspamd_worker *worker; - enum { - READ_COMMAND, - READ_HEADER, - READ_MESSAGE, - WRITE_REPLY, - WRITE_ERROR, - WAIT_FILTER, - CLOSING_CONNECTION, - } state; - size_t content_length; - enum rspamd_protocol proto; - enum rspamd_command cmd; - int sock; - char *helo; - char *from; - GList *rcpt; - unsigned int nrcpt; - struct in_addr from_addr; - f_str_buf_t *msg; - struct bufferevent *bev; - /* Memcached connection for this task */ - memcached_ctx_t *memc_ctx; - unsigned memc_busy:1; - /* Number of mime parts */ - int parts_count; - /* Message */ - GMimeMessage *message; - /* All parts of message */ - TAILQ_HEAD (mime_partq, mime_part) parts; - /* URLs extracted from message */ - TAILQ_HEAD (uriq, uri) urls; - /* Hash of metric result structures */ - GHashTable *results; - struct config_file *cfg; - /* Save point for filters deferred processing */ - struct save_point save; - /* Saved error message and code */ - char *last_error; - int error_code; - /* Memory pool that is associated with this task */ - memory_pool_t *task_pool; -}; - -struct module_ctx { - int (*header_filter)(struct worker_task *task); - int (*mime_filter)(struct worker_task *task); - int (*message_filter)(struct worker_task *task); - int (*url_filter)(struct worker_task *task); -}; - -struct c_module { - const char *name; - struct module_ctx *ctx; - LIST_ENTRY (c_module) next; -}; - -void start_worker (struct rspamd_worker *worker, int listen_sock); -void start_controller (struct rspamd_worker *worker); - -extern sig_atomic_t do_reopen_log; - -#endif - -/* - * vi:ts=4 - */ |