]> git.meshlink.io Git - catta/blobdiff - avahi-client/internal.h
fix avahi_netlink_new to allow multiple netlinks per process
[catta] / avahi-client / internal.h
index 31f3ce3dfef39d774fe287ca5695808d304ba1da..e5f3beb30112ff81ef7f4c764aead391c6707eba 100644 (file)
@@ -1,21 +1,19 @@
 #ifndef foointernalhfoo
 #define foointernalhfoo
 
-/* $Id$ */
-
 /***
   This file is part of avahi.
+
   avahi is free software; you can redistribute it and/or modify it
   under the terms of the GNU Lesser General Public License as
   published by the Free Software Foundation; either version 2.1 of the
   License, or (at your option) any later version.
+
   avahi is distributed in the hope that it will be useful, but WITHOUT
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
   or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
   Public License for more details.
+
   You should have received a copy of the GNU Lesser General Public
   License along with avahi; if not, write to the Free Software
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
@@ -33,15 +31,16 @@ struct AvahiClient {
     DBusConnection *bus;
     int error;
     AvahiClientState state;
+    AvahiClientFlags flags;
 
     /* Cache for some seldom changing server data */
     char *version_string, *host_name, *host_name_fqdn, *domain_name;
     uint32_t local_service_cookie;
     int local_service_cookie_valid;
-    
+
     AvahiClientCallback callback;
     void *userdata;
-    
+
     AVAHI_LLIST_HEAD(AvahiEntryGroup, groups);
     AVAHI_LLIST_HEAD(AvahiDomainBrowser, domain_browsers);
     AVAHI_LLIST_HEAD(AvahiServiceBrowser, service_browsers);
@@ -49,11 +48,13 @@ struct AvahiClient {
     AVAHI_LLIST_HEAD(AvahiServiceResolver, service_resolvers);
     AVAHI_LLIST_HEAD(AvahiHostNameResolver, host_name_resolvers);
     AVAHI_LLIST_HEAD(AvahiAddressResolver, address_resolvers);
+    AVAHI_LLIST_HEAD(AvahiRecordBrowser, record_browsers);
 };
 
 struct AvahiEntryGroup {
     char *path;
     AvahiEntryGroupState state;
+    int state_valid;
     AvahiClient *client;
     AvahiEntryGroupCallback callback;
     void *userdata;
@@ -62,7 +63,7 @@ struct AvahiEntryGroup {
 
 struct AvahiDomainBrowser {
     int ref;
-    
+
     char *path;
     AvahiClient *client;
     AvahiDomainBrowserCallback callback;
@@ -137,6 +138,19 @@ struct AvahiAddressResolver {
     AvahiProtocol protocol;
 };
 
+struct AvahiRecordBrowser {
+    char *path;
+    AvahiClient *client;
+    AvahiRecordBrowserCallback callback;
+    void *userdata;
+    AVAHI_LLIST_FIELDS(AvahiRecordBrowser, record_browsers);
+
+    char *name;
+    uint16_t clazz, type;
+    AvahiIfIndex interface;
+    AvahiProtocol protocol;
+};
+
 int avahi_client_set_errno (AvahiClient *client, int error);
 int avahi_client_set_dbus_error(AvahiClient *client, DBusError *error);
 
@@ -145,6 +159,7 @@ void avahi_entry_group_set_state(AvahiEntryGroup *group, AvahiEntryGroupState st
 DBusHandlerResult avahi_domain_browser_event (AvahiClient *client, AvahiBrowserEvent event, DBusMessage *message);
 DBusHandlerResult avahi_service_type_browser_event (AvahiClient *client, AvahiBrowserEvent event, DBusMessage *message);
 DBusHandlerResult avahi_service_browser_event (AvahiClient *client, AvahiBrowserEvent event, DBusMessage *message);
+DBusHandlerResult avahi_record_browser_event(AvahiClient *client, AvahiBrowserEvent event, DBusMessage *message);
 
 DBusHandlerResult avahi_service_resolver_event (AvahiClient *client, AvahiResolverEvent event, DBusMessage *message);
 DBusHandlerResult avahi_host_name_resolver_event (AvahiClient *client, AvahiResolverEvent event, DBusMessage *message);
@@ -152,4 +167,6 @@ DBusHandlerResult avahi_address_resolver_event (AvahiClient *client, AvahiResolv
 
 int avahi_client_simple_method_call(AvahiClient *client, const char *path, const char *interface, const char *method);
 
+int avahi_client_is_connected(AvahiClient *client);
+
 #endif