1 #ifndef fooAvahiserverhfoo
2 #define fooAvahiserverhfoo
8 #include "timeeventq.h"
10 #include "subscribe.h"
14 AvahiEntryGroup *group;
18 AvahiEntryFlags flags;
23 AVAHI_LLIST_FIELDS(AvahiEntry, entries);
24 AVAHI_LLIST_FIELDS(AvahiEntry, by_key);
25 AVAHI_LLIST_FIELDS(AvahiEntry, by_group);
27 AVAHI_LLIST_HEAD(AvahiAnnouncement, announcements);
30 struct _AvahiEntryGroup {
34 AvahiEntryGroupState state;
36 AvahiEntryGroupCallback callback;
40 AVAHI_LLIST_FIELDS(AvahiEntryGroup, groups);
41 AVAHI_LLIST_HEAD(AvahiEntry, entries);
45 GMainContext *context;
46 AvahiInterfaceMonitor *monitor;
48 AVAHI_LLIST_HEAD(AvahiEntry, entries);
49 GHashTable *entries_by_key;
51 AVAHI_LLIST_HEAD(AvahiEntryGroup, groups);
53 AVAHI_LLIST_HEAD(AvahiSubscription, subscriptions);
54 GHashTable *subscription_hashtable;
56 gboolean need_entry_cleanup, need_group_cleanup;
58 AvahiTimeEventQueue *time_event_queue;
62 gint fd_ipv4, fd_ipv6;
64 GPollFD pollfd_ipv4, pollfd_ipv6;
67 gboolean ignore_bad_ttl;
70 gboolean avahi_server_entry_match_interface(AvahiEntry *e, AvahiInterface *i);
72 void avahi_server_post_query(AvahiServer *s, gint interface, guchar protocol, AvahiKey *key);
73 void avahi_server_post_response(AvahiServer *s, gint interface, guchar protocol, AvahiRecord *record, gboolean flush_cache);
75 void avahi_entry_group_change_state(AvahiEntryGroup *g, AvahiEntryGroupState state);
77 gboolean avahi_entry_commited(AvahiEntry *e);