]> git.meshlink.io Git - catta/blob - announce.h
add support for dots and backslashes in domain names (required for DNS-SD)
[catta] / announce.h
1 #ifndef fooannouncehfoo
2 #define fooannouncehfoo
3
4 #include <glib.h>
5
6 typedef struct _flxAnnouncement flxAnnouncement;
7
8 #include "llist.h"
9 #include "iface.h"
10 #include "server.h"
11 #include "timeeventq.h"
12
13 typedef enum {
14     FLX_PROBING,
15     FLX_ANNOUNCING,
16 } flxAnnouncementState;
17
18 struct _flxAnnouncement {
19     flxServer *server;
20     flxInterface *interface;
21     flxServerEntry *entry;
22
23     flxTimeEvent *time_event;
24
25     flxAnnouncementState state;
26     guint n_iteration;
27     guint sec_delay;
28
29     FLX_LLIST_FIELDS(flxAnnouncement, by_interface);
30     FLX_LLIST_FIELDS(flxAnnouncement, by_entry);
31 };
32
33 void flx_announce_interface(flxServer *s, flxInterface *i);
34 void flx_announce_entry(flxServer *s, flxServerEntry *e);
35
36 gboolean flx_entry_established(flxServer *s, flxServerEntry *e, flxInterface *i);
37
38 void flx_goodbye_interface(flxServer *s, flxInterface *i, gboolean send);
39 void flx_goodbye_entry(flxServer *s, flxServerEntry *e, gboolean send);
40
41 void flx_goodbye_all(flxServer *s, gboolean send);
42
43 #endif