]> git.meshlink.io Git - catta/blobdiff - avahi-core/server.h
* add proper error codes and patch everything to make use of it
[catta] / avahi-core / server.h
index 0da7c34e2c143fec9df8008c598e367548e6b718..6572fbb69e9983ade674cf7d3cf4113be455274c 100644 (file)
@@ -55,8 +55,8 @@ struct AvahiEntry {
     
     AvahiEntryFlags flags;
     AvahiRecord *record;
-    gint interface;
-    guchar protocol;
+    AvahiIfIndex interface;
+    AvahiProtocol protocol;
 
     AVAHI_LLIST_FIELDS(AvahiEntry, entries);
     AVAHI_LLIST_FIELDS(AvahiEntry, by_key);
@@ -75,6 +75,10 @@ struct AvahiEntryGroup {
 
     guint n_probing;
     
+    guint n_register_try;
+    GTimeVal register_time;
+    AvahiTimeEvent *register_time_event;
+    
     AVAHI_LLIST_FIELDS(AvahiEntryGroup, groups);
     AVAHI_LLIST_HEAD(AvahiEntry, entries);
 };
@@ -98,6 +102,7 @@ struct AvahiServer {
     AVAHI_LLIST_HEAD(AvahiServiceTypeBrowser, service_type_browsers);
     AVAHI_LLIST_HEAD(AvahiServiceBrowser, service_browsers);
     AVAHI_LLIST_HEAD(AvahiServiceResolver, service_resolvers);
+    AVAHI_LLIST_HEAD(AvahiDNSServerBrowser, dns_server_browsers);
 
     gboolean need_entry_cleanup, need_group_cleanup, need_browser_cleanup;
     
@@ -120,23 +125,23 @@ struct AvahiServer {
     AvahiEntryGroup *browse_domain_entry_group;
     guint n_host_rr_pending;
 
-    AvahiTimeEvent *register_time_event;
-    
     /* Used for assembling responses */
     AvahiRecordList *record_list;
 
     /* Used for reflection of legacy unicast packets */
     AvahiLegacyUnicastReflectSlot **legacy_unicast_reflect_slots;
     guint16 legacy_unicast_reflect_id;
+
+    gint error;
 };
 
 gboolean avahi_server_entry_match_interface(AvahiEntry *e, AvahiInterface *i);
 
-void avahi_server_post_query(AvahiServer *s, gint interface, guchar protocol, AvahiKey *key);
+void avahi_server_post_query(AvahiServer *s, AvahiIfIndex interface, AvahiProtocol protocol, AvahiKey *key);
 
 void avahi_server_prepare_response(AvahiServer *s, AvahiInterface *i, AvahiEntry *e, gboolean unicast_response, gboolean auxiliary);
 void avahi_server_prepare_matching_responses(AvahiServer *s, AvahiInterface *i, AvahiKey *k, gboolean unicast_response);
-void avahi_server_generate_response(AvahiServer *s, AvahiInterface *i, AvahiDnsPacket *p, const AvahiAddress *a, guint16 port, gboolean legacy_unicast);
+void avahi_server_generate_response(AvahiServer *s, AvahiInterface *i, AvahiDnsPacket *p, const AvahiAddress *a, guint16 port, gboolean legacy_unicast, gboolean is_probe);
 
 void avahi_entry_group_change_state(AvahiEntryGroup *g, AvahiEntryGroupState state);
 
@@ -149,4 +154,6 @@ void avahi_host_rr_entry_group_callback(AvahiServer *s, AvahiEntryGroup *g, Avah
 void avahi_server_decrease_host_rr_pending(AvahiServer *s);
 void avahi_server_increase_host_rr_pending(AvahiServer *s);
 
+gint avahi_server_set_errno(AvahiServer *s, gint error);
+
 #endif