X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;ds=sidebyside;f=announce.h;h=cd969776937b4ae225b207b0162b24b77e81dcca;hb=7dce450bdc23ea306a61e00f914481e29ebcb176;hp=0e65eae6b1668f0b4ffe79b39c704040802c7262;hpb=ad1f9d3725a300f10eca071c6fe2f2c583f51436;p=catta diff --git a/announce.h b/announce.h index 0e65eae..cd96977 100644 --- a/announce.h +++ b/announce.h @@ -3,31 +3,49 @@ #include -typedef struct _flxAnnouncement flxAnnouncement; +typedef struct _AvahiAnnouncement AvahiAnnouncement; #include "llist.h" #include "iface.h" #include "server.h" #include "timeeventq.h" -struct _flxAnnouncement { - flxServer *server; - flxInterface *interface; - flxServerEntry *entry; - - flxTimeEvent *time_event; - guint n_announced; +typedef enum { + AVAHI_PROBING, + AVAHI_WAITING, /* wait for other records in group */ + AVAHI_ANNOUNCING, + AVAHI_ESTABLISHED +} AvahiAnnouncementState; - FLX_LLIST_FIELDS(flxAnnouncement, by_interface); - FLX_LLIST_FIELDS(flxAnnouncement, by_entry); +struct _AvahiAnnouncement { + AvahiServer *server; + AvahiInterface *interface; + AvahiEntry *entry; + + AvahiTimeEvent *time_event; + + AvahiAnnouncementState state; + guint n_iteration; + guint sec_delay; + + AVAHI_LLIST_FIELDS(AvahiAnnouncement, by_interface); + AVAHI_LLIST_FIELDS(AvahiAnnouncement, by_entry); }; -void flx_announce_interface(flxServer *s, flxInterface *i); -void flx_announce_entry(flxServer *s, flxServerEntry *e); +void avahi_announce_interface(AvahiServer *s, AvahiInterface *i); +void avahi_announce_entry(AvahiServer *s, AvahiEntry *e); +void avahi_announce_group(AvahiServer *s, AvahiEntryGroup *g); + +void avahi_entry_group_check_probed(AvahiEntryGroup *g, gboolean immediately); + +gboolean avahi_entry_registered(AvahiServer *s, AvahiEntry *e, AvahiInterface *i); +gboolean avahi_entry_registering(AvahiServer *s, AvahiEntry *e, AvahiInterface *i); + +void avahi_goodbye_interface(AvahiServer *s, AvahiInterface *i, gboolean send); +void avahi_goodbye_entry(AvahiServer *s, AvahiEntry *e, gboolean send); -void flx_goodbye_interface(flxServer *s, flxInterface *i, gboolean send); -void flx_goodbye_entry(flxServer *s, flxServerEntry *e, gboolean send); +void avahi_goodbye_all(AvahiServer *s, gboolean send); -void flx_goodbye_all(flxServer *s, gboolean send); +AvahiAnnouncement *avahi_get_announcement(AvahiServer *s, AvahiEntry *e, AvahiInterface *i); #endif