]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
Convert smtp workers.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 30 Sep 2013 16:14:01 +0000 (17:14 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 30 Sep 2013 16:14:01 +0000 (17:14 +0100)
src/smtp.c
src/smtp_proxy.c

index f4033c9542a6a984b7606826055611386bc47733..2cfddfe19f6600da3cb64c7e7f6f7ecb604d58b0 100644 (file)
@@ -51,7 +51,7 @@ static gboolean smtp_write_socket (void *arg);
 static sig_atomic_t                    wanna_die = 0;
 
 /* Init functions */
-gpointer init_smtp (void);
+gpointer init_smtp (struct config_file *cfg);
 void start_smtp (struct rspamd_worker *worker);
 
 worker_t smtp_worker = {
@@ -863,7 +863,7 @@ make_capabilities (struct smtp_worker_ctx *ctx, const gchar *line)
 }
 
 gpointer
-init_smtp (void)
+init_smtp (struct config_file *cfg)
 {
        struct smtp_worker_ctx                  *ctx;
        GQuark                                                          type;
@@ -881,26 +881,45 @@ init_smtp (void)
        ctx->max_errors = DEFAULT_MAX_ERRORS;
        ctx->reject_message = DEFAULT_REJECT_MESSAGE;
 
-       register_worker_opt (type, "upstreams", xml_handle_string, ctx,
-                               G_STRUCT_OFFSET (struct smtp_worker_ctx, upstreams_str));
-       register_worker_opt (type, "banner", xml_handle_string, ctx,
-                                       G_STRUCT_OFFSET (struct smtp_worker_ctx, smtp_banner_str));
-       register_worker_opt (type, "timeout", xml_handle_seconds, ctx,
-                                       G_STRUCT_OFFSET (struct smtp_worker_ctx, smtp_timeout_raw));
-       register_worker_opt (type, "delay", xml_handle_seconds, ctx,
-                                       G_STRUCT_OFFSET (struct smtp_worker_ctx, smtp_delay));
-       register_worker_opt (type, "jitter", xml_handle_seconds, ctx,
-                                               G_STRUCT_OFFSET (struct smtp_worker_ctx, delay_jitter));
-       register_worker_opt (type, "capabilities", xml_handle_string, ctx,
-                                       G_STRUCT_OFFSET (struct smtp_worker_ctx, smtp_capabilities_str));
-       register_worker_opt (type, "xclient", xml_handle_boolean, ctx,
-                                       G_STRUCT_OFFSET (struct smtp_worker_ctx, use_xclient));
-       register_worker_opt (type, "reject_message", xml_handle_string, ctx,
-                                               G_STRUCT_OFFSET (struct smtp_worker_ctx, reject_message));
-       register_worker_opt (type, "max_errors", xml_handle_uint32, ctx,
-                                               G_STRUCT_OFFSET (struct smtp_worker_ctx, max_errors));
-       register_worker_opt (type, "max_size", xml_handle_size, ctx,
-                                               G_STRUCT_OFFSET (struct smtp_worker_ctx, max_size));
+       rspamd_rcl_register_worker_option (cfg, type, "upstreams",
+                       rspamd_rcl_parse_struct_string, ctx,
+                       G_STRUCT_OFFSET (struct smtp_worker_ctx, upstreams_str), 0);
+
+       rspamd_rcl_register_worker_option (cfg, type, "banner",
+                       rspamd_rcl_parse_struct_string, ctx,
+                       G_STRUCT_OFFSET (struct smtp_worker_ctx, smtp_banner_str), 0);
+
+       rspamd_rcl_register_worker_option (cfg, type, "timeout",
+                       rspamd_rcl_parse_struct_time, ctx,
+                       G_STRUCT_OFFSET (struct smtp_worker_ctx, smtp_timeout_raw), RSPAMD_CL_FLAG_TIME_UINT_32);
+
+       rspamd_rcl_register_worker_option (cfg, type, "delay",
+                       rspamd_rcl_parse_struct_time, ctx,
+                       G_STRUCT_OFFSET (struct smtp_worker_ctx, smtp_delay), RSPAMD_CL_FLAG_TIME_UINT_32);
+
+       rspamd_rcl_register_worker_option (cfg, type, "jitter",
+                       rspamd_rcl_parse_struct_time, ctx,
+                       G_STRUCT_OFFSET (struct smtp_worker_ctx, delay_jitter), RSPAMD_CL_FLAG_TIME_UINT_32);
+
+       rspamd_rcl_register_worker_option (cfg, type, "capabilities",
+                       rspamd_rcl_parse_struct_string, ctx,
+                       G_STRUCT_OFFSET (struct smtp_worker_ctx, smtp_capabilities_str), 0);
+
+       rspamd_rcl_register_worker_option (cfg, type, "xclient",
+                       rspamd_rcl_parse_struct_boolean, ctx,
+                       G_STRUCT_OFFSET (struct smtp_worker_ctx, use_xclient), 0);
+
+       rspamd_rcl_register_worker_option (cfg, type, "reject_message",
+                       rspamd_rcl_parse_struct_string, ctx,
+                       G_STRUCT_OFFSET (struct smtp_worker_ctx, reject_message), 0);
+
+       rspamd_rcl_register_worker_option (cfg, type, "max_errors",
+                       rspamd_rcl_parse_struct_integer, ctx,
+                       G_STRUCT_OFFSET (struct smtp_worker_ctx, max_errors), RSPAMD_CL_FLAG_INT_32);
+
+       rspamd_rcl_register_worker_option (cfg, type, "max_size",
+                       rspamd_rcl_parse_struct_integer, ctx,
+                       G_STRUCT_OFFSET (struct smtp_worker_ctx, max_size), RSPAMD_CL_FLAG_INT_SIZE);
 
        return ctx;
 }
index d3bcd3866b874738c590f0163af271ec1cad13b9..e468086b44345ea6194b295dd9428605954f41e9 100644 (file)
@@ -52,7 +52,7 @@
 static sig_atomic_t                    wanna_die = 0;
 
 /* Init functions */
-gpointer init_smtp_proxy (void);
+gpointer init_smtp_proxy (struct config_file *cfg);
 void start_smtp_proxy (struct rspamd_worker *worker);
 
 worker_t smtp_proxy_worker = {
@@ -953,7 +953,7 @@ accept_socket (gint fd, short what, void *arg)
 }
 
 gpointer
-init_smtp_proxy (void)
+init_smtp_proxy (struct config_file *cfg)
 {
        struct smtp_proxy_ctx                   *ctx;
        GQuark                                                          type;
@@ -968,22 +968,37 @@ init_smtp_proxy (void)
        ctx->smtp_delay = 0;
        ctx->instant_reject = TRUE;
 
-       register_worker_opt (type, "upstreams", xml_handle_string, ctx,
-                               G_STRUCT_OFFSET (struct smtp_proxy_ctx, upstreams_str));
-       register_worker_opt (type, "timeout", xml_handle_seconds, ctx,
-                               G_STRUCT_OFFSET (struct smtp_proxy_ctx, smtp_timeout_raw));
-       register_worker_opt (type, "delay", xml_handle_seconds, ctx,
-                               G_STRUCT_OFFSET (struct smtp_proxy_ctx, smtp_delay));
-       register_worker_opt (type, "jitter", xml_handle_seconds, ctx,
-                               G_STRUCT_OFFSET (struct smtp_proxy_ctx, delay_jitter));
-       register_worker_opt (type, "xclient", xml_handle_boolean, ctx,
-                               G_STRUCT_OFFSET (struct smtp_proxy_ctx, use_xclient));
-       register_worker_opt (type, "instant_reject", xml_handle_boolean, ctx,
-                                       G_STRUCT_OFFSET (struct smtp_proxy_ctx, instant_reject));
-       register_worker_opt (type, "proxy_buffer", xml_handle_size, ctx,
-                               G_STRUCT_OFFSET (struct smtp_proxy_ctx, proxy_buf_len));
-       register_worker_opt (type, "dnsbl", xml_handle_list, ctx,
-                               G_STRUCT_OFFSET (struct smtp_proxy_ctx, rbls));
+       rspamd_rcl_register_worker_option (cfg, type, "upstreams",
+                       rspamd_rcl_parse_struct_string, ctx,
+                       G_STRUCT_OFFSET (struct smtp_proxy_ctx, upstreams_str), 0);
+
+       rspamd_rcl_register_worker_option (cfg, type, "timeout",
+                       rspamd_rcl_parse_struct_time, ctx,
+                       G_STRUCT_OFFSET (struct smtp_proxy_ctx, smtp_timeout_raw), RSPAMD_CL_FLAG_TIME_UINT_32);
+
+       rspamd_rcl_register_worker_option (cfg, type, "delay",
+                       rspamd_rcl_parse_struct_time, ctx,
+                       G_STRUCT_OFFSET (struct smtp_proxy_ctx, smtp_delay), RSPAMD_CL_FLAG_TIME_UINT_32);
+
+       rspamd_rcl_register_worker_option (cfg, type, "jitter",
+                       rspamd_rcl_parse_struct_time, ctx,
+                       G_STRUCT_OFFSET (struct smtp_proxy_ctx, delay_jitter), RSPAMD_CL_FLAG_TIME_UINT_32);
+
+       rspamd_rcl_register_worker_option (cfg, type, "xclient",
+                       rspamd_rcl_parse_struct_boolean, ctx,
+                       G_STRUCT_OFFSET (struct smtp_proxy_ctx, use_xclient), 0);
+
+       rspamd_rcl_register_worker_option (cfg, type, "instant_reject",
+                       rspamd_rcl_parse_struct_boolean, ctx,
+                       G_STRUCT_OFFSET (struct smtp_proxy_ctx, instant_reject), 0);
+
+       rspamd_rcl_register_worker_option (cfg, type, "proxy_buffer",
+                       rspamd_rcl_parse_struct_integer, ctx,
+                       G_STRUCT_OFFSET (struct smtp_proxy_ctx, proxy_buf_len), RSPAMD_CL_FLAG_INT_32);
+
+       rspamd_rcl_register_worker_option (cfg, type, "dnsbl",
+                       rspamd_rcl_parse_struct_string_list, ctx,
+                       G_STRUCT_OFFSET (struct smtp_proxy_ctx, rbls), 0);
 
        return ctx;
 }