1 /*
2 **  Copyright (c) 2009-2012, The Trusted Domain Project.  All rights reserved.
3 **
4 */
5 
6 #ifndef _OPENDKIM_LUA_H_
7 #define _OPENDKIM_LUA_H_
8 
9 /* system includes */
10 #include <sys/types.h>
11 
12 /* types */
13 struct dkimf_lua_script_result
14 {
15 	int	lrs_rcount;
16 	char *	lrs_error;
17 	char **	lrs_results;
18 };
19 
20 struct dkimf_lua_gc_item
21 {
22 	int				gci_type;
23 	void *				gci_item;
24 	struct dkimf_lua_gc_item *	gci_next;
25 };
26 
27 struct dkimf_lua_gc
28 {
29 	struct dkimf_lua_gc_item *	gc_head;
30 	struct dkimf_lua_gc_item *	gc_tail;
31 };
32 
33 /* macros */
34 #define	DKIMF_GC		"_DKIMF_GC"
35 #define	DKIMF_LUA_GC_DB		1
36 
37 /* prototypes */
38 extern int dkimf_lua_db_hook __P((const char *, size_t, const char *,
39                                   struct dkimf_lua_script_result *,
40                                   void **, size_t *));
41 extern int dkimf_lua_final_hook __P((void *, const char *, size_t,
42                                      const char *,
43                                      struct dkimf_lua_script_result *,
44                                      void **, size_t *));
45 extern void dkimf_lua_gc_add __P((struct dkimf_lua_gc *g, void *, int));
46 extern void dkimf_lua_gc_cleanup __P((struct dkimf_lua_gc *));
47 extern void dkimf_lua_gc_remove __P((struct dkimf_lua_gc *, void *));
48 extern int dkimf_lua_screen_hook __P((void *, const char *, size_t,
49                                       const char *,
50                                       struct dkimf_lua_script_result *,
51                                       void **, size_t *));
52 extern int dkimf_lua_setup_hook __P((void *, const char *, size_t,
53                                      const char *,
54                                      struct dkimf_lua_script_result *,
55                                      void **, size_t *));
56 #ifdef _FFR_STATSEXT
57 extern int dkimf_lua_stats_hook __P((void *, const char *, size_t,
58                                      const char *,
59                                      struct dkimf_lua_script_result *,
60                                      void **, size_t *));
61 #endif /* _FFR_STATSEXT */
62 
63 #endif /* _OPENDKIM_LUA_H_ */
64