X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-core%2Fserver.h;h=300ae8be4b0a901eac3b72ac672d53cd1cf9c8fc;hb=fa8febc102b08ad9c5ff4732dfa5dbfda7361874;hp=3630d1e7fe18f8967e24b34ef0a9633264a98199;hpb=8b5cd6ffd9137b14b7ed678f10a551e3911e4a40;p=catta diff --git a/avahi-core/server.h b/avahi-core/server.h index 3630d1e..300ae8b 100644 --- a/avahi-core/server.h +++ b/avahi-core/server.h @@ -37,9 +37,13 @@ typedef struct AvahiEntry AvahiEntry; #include "dns.h" #include "rrlist.h" #include "hashmap.h" +#include "wide-area.h" +#include "multicast-lookup.h" #define AVAHI_MAX_LEGACY_UNICAST_REFLECT_SLOTS 100 +#define AVAHI_FLAGS_VALID(flags, max) (!((flags) & ~(max))) + typedef struct AvahiLegacyUnicastReflectSlot AvahiLegacyUnicastReflectSlot; struct AvahiLegacyUnicastReflectSlot { @@ -59,7 +63,7 @@ struct AvahiEntry { int dead; - AvahiEntryFlags flags; + AvahiPublishFlags flags; AvahiRecord *record; AvahiIfIndex interface; AvahiProtocol protocol; @@ -84,13 +88,15 @@ struct AvahiSEntryGroup { unsigned n_register_try; struct timeval register_time; AvahiTimeEvent *register_time_event; + + struct timeval established_at; AVAHI_LLIST_FIELDS(AvahiSEntryGroup, groups); AVAHI_LLIST_HEAD(AvahiEntry, entries); }; struct AvahiServer { - AvahiPoll *poll_api; + const AvahiPoll *poll_api; AvahiInterfaceMonitor *monitor; AvahiServerConfig config; @@ -138,7 +144,14 @@ struct AvahiServer { AvahiLegacyUnicastReflectSlot **legacy_unicast_reflect_slots; uint16_t legacy_unicast_reflect_id; + /* The last error code */ int error; + + /* The local service cookie */ + uint32_t local_service_cookie; + + AvahiMulticastLookupEngine *multicast_lookup_engine; + AvahiWideAreaLookupEngine *wide_area_lookup_engine; }; int avahi_server_entry_match_interface(AvahiEntry *e, AvahiInterface *i); @@ -162,4 +175,11 @@ void avahi_server_increase_host_rr_pending(AvahiServer *s); int avahi_server_set_errno(AvahiServer *s, int error); +#define AVAHI_CHECK_VALIDITY_RETURN_NULL(server, expression, error) { \ + if (!(expression)) { \ + avahi_server_set_errno((server), (error)); \ + return NULL; \ + } \ +} + #endif