1 #ifndef MAIL_FRONT__MAILFRONT_INTERNAL__H__
2 #define MAIL_FRONT__MAILFRONT_INTERNAL__H__
3 
4 #include "mailfront.h"
5 #include <bglibs/ghash.h>
6 
7 struct session
8 {
9   struct protocol* protocol;
10   struct plugin* backend;
11   struct ghash strs;
12   struct ghash nums;
13   str env;
14   int fd;
15   struct plugin* plugin_list;
16   struct plugin* plugin_tail;
17   unsigned flags;
18   const char* module_path;
19 };
20 
21 GHASH_DECL(session_strs,const char*,const char*);
22 GHASH_DECL(session_nums,const char*,unsigned long);
23 
24 extern struct session session;
25 
26 /* From builtins.c */
27 extern struct plugin builtin_plugins[];
28 
29 /* From modules.c */
30 extern void add_plugin(struct plugin*);
31 extern const response* load_modules(const char* protocol_name,
32 				    const char* backend_name,
33 				    const char** plugins);
34 
35 /* From session.c */
36 extern void session_init(void);
37 
38 #endif /* MAIL_FRONT__MAILFRONT_INTERNAL__H__ */
39