diff options
author | Mikhail Galanin <mgalanin@mimecast.com> | 2018-08-13 12:06:30 +0100 |
---|---|---|
committer | Mikhail Galanin <mgalanin@mimecast.com> | 2018-08-13 12:06:30 +0100 |
commit | a9bc3d63a38ab46217303b09f8b03d0215c2f5ea (patch) | |
tree | de01b01d314e914e8f949145ae6931c59396913c /src/libutil/expression.h | |
parent | ff3053a983825f2a6c1dc8799f6ec9b337eed224 (diff) | |
download | rspamd-a9bc3d63a38ab46217303b09f8b03d0215c2f5ea.tar.gz rspamd-a9bc3d63a38ab46217303b09f8b03d0215c2f5ea.zip |
[Minor] Use struct to pass parameters to process_atom() functions
Diffstat (limited to 'src/libutil/expression.h')
-rw-r--r-- | src/libutil/expression.h | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/libutil/expression.h b/src/libutil/expression.h index fefde2974..7f7cb2dda 100644 --- a/src/libutil/expression.h +++ b/src/libutil/expression.h @@ -56,12 +56,24 @@ typedef struct rspamd_expression_atom_s { gint priority; } rspamd_expression_atom_t; +struct rspamd_expr_process_data { + /* Current Lua state to run atom processing */ + struct lua_State *L; + /* Parameter of lua-function processing atom*/ + gint stack_item; + gint flags; + /* != NULL if trace is collected */ + GPtrArray *trace; + struct composites_data *cd; + struct rspamd_task *task; +}; + struct rspamd_atom_subr { /* Parses atom from string and returns atom structure */ rspamd_expression_atom_t * (*parse)(const gchar *line, gsize len, rspamd_mempool_t *pool, gpointer ud, GError **err); /* Process atom via the opaque pointer (e.g. struct rspamd_task *) */ - gdouble (*process) (gpointer input, rspamd_expression_atom_t *atom); + gdouble (*process) (struct rspamd_expr_process_data *process_data, rspamd_expression_atom_t *atom); /* Calculates the relative priority of the expression */ gint (*priority) (rspamd_expression_atom_t *atom); void (*destroy) (rspamd_expression_atom_t *atom); @@ -92,8 +104,8 @@ gboolean rspamd_parse_expression (const gchar *line, gsize len, * @param data opaque data pointer for all the atoms * @return the value of expression */ -gdouble rspamd_process_expression (struct rspamd_expression *expr, gint flags, - gpointer data); +gdouble rspamd_process_expression (struct rspamd_expression *expr, + struct rspamd_expr_process_data *process_data); /** * Process the expression and return its value using atom 'process' functions with the specified data pointer. @@ -103,8 +115,8 @@ gdouble rspamd_process_expression (struct rspamd_expression *expr, gint flags, * @param track pointer array to atoms tracking * @return the value of expression */ -gdouble rspamd_process_expression_track (struct rspamd_expression *expr, gint flags, - gpointer data, GPtrArray *track); +gdouble rspamd_process_expression_track (struct rspamd_expression *expr, + struct rspamd_expr_process_data *process_data); /** * Shows string representation of an expression |