]> git.meshlink.io Git - catta/blobdiff - avahi-common/defs.h
Add new flag AVAHI_PUBLISH_IS_PROXY and activate it for static services with a host...
[catta] / avahi-common / defs.h
index 1475a43946b858fc9499829fbe4d40288eaa30e1..4da597cf9ca8ff51087c03a0ef8792b08ae5f26c 100644 (file)
@@ -152,16 +152,51 @@ typedef enum {
     AVAHI_DOMAIN_BROWSER_MAX
 } AvahiDomainBrowserType;
 
+/** Some flags for publishing functions */
+typedef enum {
+    AVAHI_PUBLISH_NULL = 0,          
+    AVAHI_PUBLISH_UNIQUE = 1,           /**< For raw records: The RRset is intended to be unique */
+    AVAHI_PUBLISH_NO_PROBE = 2,         /**< For raw records: Though the RRset is intended to be unique no probes shall be sent */
+    AVAHI_PUBLISH_NO_ANNOUNCE = 4,      /**< For raw records: Do not announce this RR to other hosts */
+    AVAHI_PUBLISH_ALLOW_MULTIPLE = 8,   /**< For raw records: Allow multiple local records of this type, even if they are intended to be unique */
+    AVAHI_PUBLISH_NO_REVERSE = 16,      /**< For address records: don't create a reverse (PTR) entry */
+    AVAHI_PUBLISH_NO_COOKIE = 32,       /**< For service records: do not implicitly add the local service cookie to TXT data */
+    AVAHI_PUBLISH_IS_PROXY = 64         /**< For service records: this is a proxy for another host. This modifies behaviour of avahi_server_is_service_local() */
+} AvahiPublishFlags;
+
+/** Some flags for lookup functions */
+typedef enum {
+    AVAHI_LOOKUP_NULL = 0,
+    AVAHI_LOOKUP_USE_WIDE_AREA = 1,    /**< Force lookup via wide area DNS */
+    AVAHI_LOOKUP_USE_MULTICAST = 2,    /**< Force lookup via multicast DNS */
+    AVAHI_LOOKUP_NO_TXT = 4,           /**< When doing service resolving, don't lookup TXT record */
+    AVAHI_LOOKUP_NO_ADDRESS = 8        /**< When doing service resolving, don't lookup A/AAAA record */
+} AvahiLookupFlags;
+
+/** Some flags for lookup callback functions */
+typedef enum {
+    AVAHI_LOOKUP_RESULT_NULL = 0,
+    AVAHI_LOOKUP_RESULT_CACHED = 1,      /**< This response originates from the cache */
+    AVAHI_LOOKUP_RESULT_WIDE_AREA = 2,   /**< This response originates from wide area DNS */
+    AVAHI_LOOKUP_RESULT_MULTICAST = 4,   /**< This response originates from multicast DNS */
+} AvahiLookupResultFlags;
+
 /** Type of callback event when browsing */
 typedef enum {
-    AVAHI_BROWSER_NEW,            /**< The object is new on the network */
-    AVAHI_BROWSER_REMOVE          /**< The object has been removed from the network */
+    AVAHI_BROWSER_NEW,               /**< The object is new on the network */
+    AVAHI_BROWSER_REMOVE,            /**< The object has been removed from the network */
+    AVAHI_BROWSER_CACHE_EXHAUSTED,   /**< One-time event, to notify the user that all entries from the caches have been send */
+    AVAHI_BROWSER_ALL_FOR_NOW,       /**< One-time event, to notify the user that more records will probably not show up in the near future, i.e. all cache entries have been read and all static servers been queried */
+    AVAHI_BROWSER_NOT_FOUND,         /**< Issued when using wide area DNS-SD to inform that a record is not existing */
+    AVAHI_BROWSER_FAILURE            /**< Issued when using wide area DNS-SD to inform about server failures */
 } AvahiBrowserEvent;
 
 /** Type of callback event when resolving */
 typedef enum {
-    AVAHI_RESOLVER_FOUND,         /**< RR found, resolving successful */
-    AVAHI_RESOLVER_TIMEOUT        /**< Noone responded within the timeout, resolving failed */
+    AVAHI_RESOLVER_FOUND,          /**< RR found, resolving successful */
+    AVAHI_RESOLVER_TIMEOUT,        /**< Noone responded within the timeout, resolving failed */
+    AVAHI_RESOLVER_NOT_FOUND,      /**< Query was done using wide area DNS-SD and the server told us that the entry is nto available */
+    AVAHI_RESOLVER_FAILURE,        /**< Query was done using wide area DNS-SD and the server failed */
 } AvahiResolverEvent;
 
 /** States of a server object */
@@ -172,6 +207,15 @@ typedef enum {
     AVAHI_SERVER_COLLISION         /**< There is a collision with a host RR. All host RRs have been withdrawn, the user should set a new host name via avahi_server_set_host_name() */
 } AvahiServerState;
 
+/** For every service a special TXT item is implicitly added, which
+ * contains a random cookie which is private to the local daemon. This
+ * can be used by clients to determine if two services on two
+ * different subnets are effectively the same. */
+#define AVAHI_SERVICE_COOKIE "org.freedesktop.Avahi.cookie"
+
+/** In invalid cookie as special value */
+#define AVAHI_SERVICE_COOKIE_INVALID (0)
+
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
 AVAHI_C_DECL_END
 #endif