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