Integrate listener into the core.
[jelmer/ctrlproxy.git] / src / listener.h
1 #ifndef __CTRLPROXY_LISTENER_H__
2 #define __CTRLPROXY_LISTENER_H__
3
4 #include <netdb.h>
5 #include "ctrlproxy.h"
6
7 #ifndef G_MODULE_EXPORT
8 #define G_MODULE_EXPORT
9 #endif
10
11 /**
12  * A listener.
13  */
14 struct listener {
15         int active:1;
16         GList *incoming;
17         GList *pending;
18         struct listener_config *config;
19         struct network *network;
20         struct global *global;
21 };
22
23 struct listener_iochannel {
24         char address[NI_MAXHOST];
25         char port[NI_MAXSERV];
26         gint watch_id;
27 };
28
29 G_MODULE_EXPORT struct listener *listener_init(struct global *global, struct listener_config *);
30 G_MODULE_EXPORT gboolean start_listener(struct listener *);
31 G_MODULE_EXPORT gboolean stop_listener(struct listener *);
32 G_MODULE_EXPORT void fini_listeners(struct global *);
33 G_MODULE_EXPORT void free_listener(struct listener *l);
34 G_MODULE_EXPORT gboolean init_listeners(struct global *global);
35
36 #endif