]> source.dussan.org Git - rspamd.git/commitdiff
Write atom parser skeleton.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 19 Mar 2015 15:18:18 +0000 (15:18 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 19 Mar 2015 15:18:18 +0000 (15:18 +0000)
src/libmime/mime_expressions.c
src/libmime/mime_expressions.h

index 779553ed9b01f1fe9d4f86b20d0468c4a1a04ea6..3b9aba934190142742d3aab8912446e0115dd926 100644 (file)
@@ -64,6 +64,12 @@ gboolean rspamd_has_fake_html (struct rspamd_task *task,
        GList * args,
        void *unused);
 
+static rspamd_expression_atom_t * rspamd_mime_expr_parse (const gchar *line, gsize len,
+               rspamd_mempool_t *pool, gpointer ud, GError **err);
+static gint rspamd_mime_expr_process (gpointer input, rspamd_expression_atom_t *atom);
+static gint rspamd_mime_expr_priority (rspamd_expression_atom_t *atom);
+static void rspamd_mime_expr_destroy (rspamd_expression_atom_t *atom);
+
 /**
  * Regexp type: /H - header, /M - mime, /U - url /X - raw header
  */
@@ -121,6 +127,13 @@ static struct _fl {
        {"is_recipients_sorted", rspamd_is_recipients_sorted, NULL}
 };
 
+const struct rspamd_atom_subr mime_expr_subr = {
+       .parse = rspamd_mime_expr_parse,
+       .process = rspamd_mime_expr_process,
+       .priority = rspamd_mime_expr_priority,
+       .destroy = rspamd_mime_expr_destroy
+};
+
 static struct _fl *list_ptr = &rspamd_functions_list[0];
 static guint32 functions_number = sizeof (rspamd_functions_list) /
        sizeof (struct _fl);
@@ -315,6 +328,31 @@ rspamd_parse_regexp_atom (rspamd_mempool_t * pool, const gchar *line)
        return result;
 }
 
+static
+rspamd_expression_atom_t * rspamd_mime_expr_parse (const gchar *line, gsize len,
+               rspamd_mempool_t *pool, gpointer ud, GError **err)
+{
+
+}
+
+static gint
+rspamd_mime_expr_process (gpointer input, rspamd_expression_atom_t *atom)
+{
+
+}
+
+static gint
+rspamd_mime_expr_priority (rspamd_expression_atom_t *atom)
+{
+
+}
+
+static void
+rspamd_mime_expr_destroy (rspamd_expression_atom_t *atom)
+{
+
+}
+
 gboolean
 call_expression_function (struct expression_function * func,
        struct rspamd_task * task,
index 343e912e88a0bb893aa8c64e9a4d00b8e2686e46..b8a240f3eb20a5c3c738175f41f99aa9b167439f 100644 (file)
@@ -7,10 +7,11 @@
 #define RSPAMD_EXPRESSIONS_H
 
 #include "config.h"
-#include <lua.h>
+#include "expression.h"
 
 struct rspamd_task;
-struct rspamd_regexp_element;
+
+extern const struct rspamd_atom_subr mime_expr_subr;
 
 /**
  * Function's argument
@@ -19,7 +20,6 @@ struct expression_argument {
        enum {
                EXPRESSION_ARGUMENT_NORMAL,
                EXPRESSION_ARGUMENT_BOOL,
-               EXPRESSION_ARGUMENT_EXPR,
        } type;                                                     /**< type of argument (text or other function)              */
        void *data;                                                 /**< pointer to its data                                                    */
 };