diff options
40 files changed, 108 insertions, 157 deletions
diff --git a/avahi-client/client.h b/avahi-client/client.h index ffcc8d7..4f2250b 100644 --- a/avahi-client/client.h +++ b/avahi-client/client.h @@ -36,9 +36,7 @@  /** \example glib-integration.c Example of how to integrate   * avahi use with GLIB/GTK applications */ -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_BEGIN -#endif  /** A connection context */  typedef struct AvahiClient AvahiClient; @@ -83,8 +81,6 @@ int avahi_client_errno (AvahiClient*);  /** Return the local service cookie. returns AVAHI_SERVICE_COOKIE_INVALID on failure. */  uint32_t avahi_client_get_local_service_cookie(AvahiClient *client); -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_END -#endif  #endif diff --git a/avahi-client/lookup.h b/avahi-client/lookup.h index bf19479..f2db9ab 100644 --- a/avahi-client/lookup.h +++ b/avahi-client/lookup.h @@ -38,9 +38,7 @@  /** \example client-browse-services.c Example how to browse for DNS-SD   * services using the client interface to avahi-daemon. */ -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_BEGIN -#endif  /** A domain browser object */  typedef struct AvahiDomainBrowser AvahiDomainBrowser; @@ -209,9 +207,6 @@ AvahiClient* avahi_address_resolver_get_client (AvahiAddressResolver *);  /** Free a AvahiAddressResolver resolver object */  int avahi_address_resolver_free(AvahiAddressResolver *r); -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_END -#endif -  #endif diff --git a/avahi-client/publish.h b/avahi-client/publish.h index 88c4498..7873b07 100644 --- a/avahi-client/publish.h +++ b/avahi-client/publish.h @@ -39,9 +39,7 @@   * service using the client interface to avahi-daemon. It behaves like a network   * printer registering both an IPP and a BSD LPR service. */ -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_BEGIN -#endif  /** An entry group object */  typedef struct AvahiEntryGroup AvahiEntryGroup; @@ -138,8 +136,6 @@ int avahi_entry_group_add_address(      const char *name,      const AvahiAddress *a); -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_END -#endif  #endif diff --git a/avahi-common/address.h b/avahi-common/address.h index 95eb392..53f8d06 100644 --- a/avahi-common/address.h +++ b/avahi-common/address.h @@ -29,9 +29,7 @@  #include <avahi-common/cdecl.h> -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_BEGIN -#endif  /** Protocol family specification, takes the values AVAHI_PROTO_INET, AVAHI_PROTO_INET6, AVAHI_PROTO_UNSPEC */  typedef int AvahiProtocol; @@ -61,17 +59,17 @@ enum {  #define AVAHI_PROTO_VALID(protocol) (((protocol) == AVAHI_PROTO_INET) || ((protocol) == AVAHI_PROTO_INET6) || ((protocol) == AVAHI_PROTO_UNSPEC))  /** An IPv4 address */ -typedef struct { +typedef struct AvahiIPv4Address {      uint32_t address; /**< Address data in network byte order. */  } AvahiIPv4Address;  /** An IPv6 address */ -typedef struct { +typedef struct AvahiIPv6Address {      uint8_t address[16]; /**< Address data */  } AvahiIPv6Address;  /** Protocol (address family) independent address structure */ -typedef struct { +typedef struct AvahiAddress {      AvahiProtocol proto; /**< Address family */      union { @@ -104,8 +102,6 @@ AvahiProtocol avahi_af_to_proto(int af);  /** Return a textual representation of the specified protocol number. i.e. "IPv4", "IPv6" or "UNSPEC" */  const char* avahi_proto_to_string(AvahiProtocol proto); -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_END -#endif  #endif diff --git a/avahi-common/alternative.h b/avahi-common/alternative.h index fa45d96..4f0e58b 100644 --- a/avahi-common/alternative.h +++ b/avahi-common/alternative.h @@ -26,9 +26,7 @@  #include <avahi-common/cdecl.h> -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_BEGIN -#endif  /** Find an alternative for the specified host name. If called with an   * original host name, "2" is appended, Afterwards the number is @@ -42,8 +40,6 @@ char *avahi_alternative_host_name(const char *s);      "foo #3" and so on.) avahi_free() the result. */  char *avahi_alternative_service_name(const char *s); -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_END -#endif  #endif diff --git a/avahi-common/cdecl.h b/avahi-common/cdecl.h index ca462c8..b08e2a0 100644 --- a/avahi-common/cdecl.h +++ b/avahi-common/cdecl.h @@ -23,7 +23,6 @@  ***/  /** \file cdecl.h C++ compatibility */ -  #ifdef __cplusplus  /** If using C++ this macro enables C mode, otherwise does nothing */  #define AVAHI_C_DECL_BEGIN extern "C" { diff --git a/avahi-common/dbus-watch-glue.h b/avahi-common/dbus-watch-glue.h index e815b45..101fa3f 100644 --- a/avahi-common/dbus-watch-glue.h +++ b/avahi-common/dbus-watch-glue.h @@ -26,6 +26,10 @@  #include <avahi-common/watch.h> +AVAHI_C_DECL_BEGIN +  int avahi_dbus_connection_glue(DBusConnection *c, const AvahiPoll *poll_api); +AVAHI_C_DECL_END +  #endif diff --git a/avahi-common/dbus.h b/avahi-common/dbus.h index 9cafbde..56f9d91 100644 --- a/avahi-common/dbus.h +++ b/avahi-common/dbus.h @@ -27,9 +27,7 @@  #include <avahi-common/cdecl.h>  #include <dbus/dbus.h> -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_BEGIN -#endif  #define AVAHI_DBUS_NAME "org.freedesktop.Avahi"  #define AVAHI_DBUS_INTERFACE_SERVER AVAHI_DBUS_NAME".Server" @@ -95,8 +93,6 @@ int avahi_error_dbus_to_number(const char *s);  /** Convert an Avahi error number into a DBus error string.  Result should not be freed */  const char * avahi_error_number_to_dbus(int error); -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_END -#endif  #endif diff --git a/avahi-common/defs.h b/avahi-common/defs.h index 2dcc829..14a0ba3 100644 --- a/avahi-common/defs.h +++ b/avahi-common/defs.h @@ -48,6 +48,20 @@   *    * All three APIs are very similar, however avahi-core is the most powerful.   * + * In addition to the three APIs described above Avahi supports two + * compatibility libraries: + * + * \li avahi-compat-libdns_sd: the original Bonjour API as documented + * in the header file "dns_sd.h" by Apple Computer, Inc. + * + * \li avahi-compat-howl: the HOWL API as released with HOWL 0.9.8 by + * Porchdog Software. + * + * Please note that these compatibility layers are incomplete and + * generally a waste of resources. We strongly encourage everyone to + * use our native APIs for newly written programs and to port older + * programs to one of them! + *    * \section error_reporting Error Reporting   *   * Some notes on the Avahi error handling: @@ -104,8 +118,7 @@   * avahi_alternative_service_name()) and commit again. Please do not   * free the entry group and create a new one. This would inhibit some   * traffic limiting algorithms in mDNS. - * - When you need to modify your services, reset the entry group - * (i.e. avahi_entry_group_reset()) and add them back. Please do not + * - When you need to modify your services, use the AVAHI_PUBLISH_UPDATE flag. Please do not   * free the entry group and create a new one. This would inhibit some   * traffic limiting algorithms in mDNS.   * @@ -117,7 +130,7 @@   * for the service type you want to browse for. Use   * avahi_client_resolve_service() to acquire service data for a a service   * name. - * - You can use avahi_domain_browser() to get a list of announced + * - You can use avahi_domain_browser_new() to get a list of announced   * browsing domains. Please note that not all domains whith services   * on the LAN are mandatorily announced.   * - Network monitor software may use avahi_service_type_browser_new() @@ -130,9 +143,7 @@   *     */ -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_BEGIN -#endif  /** States of an entry group object */  typedef enum { @@ -214,8 +225,6 @@ typedef enum {  /** In invalid cookie as special value */  #define AVAHI_SERVICE_COOKIE_INVALID (0) -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_END -#endif  #endif diff --git a/avahi-common/domain.h b/avahi-common/domain.h index e5869ce..53897e7 100644 --- a/avahi-common/domain.h +++ b/avahi-common/domain.h @@ -29,9 +29,7 @@  #include <avahi-common/cdecl.h> -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_BEGIN -#endif  /** The maximum length of a a fully escaped domain name C string. This   * is calculated like this: RFC1034 mandates maximum length of FQDNs @@ -100,8 +98,6 @@ int avahi_service_name_join(char *p, size_t size, const char *name, const char *  /** Split a full service name into name, type and domain */  int avahi_service_name_split(const char *p, char *name, size_t name_size, char *type, size_t type_size, char *domain, size_t domain_size); -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_END -#endif  #endif diff --git a/avahi-common/error.h b/avahi-common/error.h index 270aece..a7c97a7 100644 --- a/avahi-common/error.h +++ b/avahi-common/error.h @@ -26,9 +26,7 @@  #include <avahi-common/cdecl.h> -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_BEGIN -#endif  /** Error codes used by avahi */  enum {  @@ -97,8 +95,6 @@ enum {  /** Return a human readable error string for the specified error code */  const char *avahi_strerror(int error); -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_END -#endif  #endif diff --git a/avahi-common/gccmacro.h b/avahi-common/gccmacro.h index 33ff847..c32a29d 100644 --- a/avahi-common/gccmacro.h +++ b/avahi-common/gccmacro.h @@ -26,9 +26,7 @@  #include <avahi-common/cdecl.h> -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_BEGIN -#endif  #ifdef __GNUC__  #if __GNUC__ >= 4 @@ -61,8 +59,6 @@ AVAHI_C_DECL_BEGIN  #define AVAHI_GCC_NORETURN  #endif -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_END -#endif  #endif diff --git a/avahi-common/llist.h b/avahi-common/llist.h index 25daf2b..37474e1 100644 --- a/avahi-common/llist.h +++ b/avahi-common/llist.h @@ -28,9 +28,7 @@  #include <avahi-common/cdecl.h> -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_BEGIN -#endif  /** The head of the linked list. Use this in the structure that shall   * contain the head of the linked list */ @@ -74,9 +72,6 @@ AVAHI_C_DECL_BEGIN                                      _item->name##_next = _item->name##_prev = NULL; \                                      } while(0) -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_END -#endif -  #endif diff --git a/avahi-common/malloc.h b/avahi-common/malloc.h index d0e620a..d911a3a 100644 --- a/avahi-common/malloc.h +++ b/avahi-common/malloc.h @@ -60,15 +60,12 @@ char *avahi_strndup(const char *s, size_t l);  void *avahi_memdup(const void *s, size_t l);  /** Wraps allocator functions */ -typedef struct AvahiAllocator AvahiAllocator; - -/** Wraps allocator functions */ -struct AvahiAllocator { +typedef struct AvahiAllocator {      void* (*malloc)(size_t size);           void (*free)(void *p);                 void* (*realloc)(void *p, size_t size);      void* (*calloc)(size_t nmemb, size_t size);   /**< May be NULL */ -}; +} AvahiAllocator;  /** Change the allocator. May be NULL to return to default (libc)   * allocators. The structure is not copied! */ diff --git a/avahi-common/rlist.h b/avahi-common/rlist.h index 57b258c..0b88955 100644 --- a/avahi-common/rlist.h +++ b/avahi-common/rlist.h @@ -26,9 +26,7 @@  #include "llist.h" -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_BEGIN -#endif  /** A doubly linked list type */  typedef struct AvahiRList AvahiRList; @@ -48,8 +46,6 @@ AvahiRList* avahi_rlist_remove(AvahiRList *r, void *data);  /** Remove the specified item from the list and return the new beginning */  AvahiRList* avahi_rlist_remove_by_link(AvahiRList *r, AvahiRList *n); -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_END -#endif  #endif diff --git a/avahi-common/simple-watch.h b/avahi-common/simple-watch.h index 5a4b37d..7c83db3 100644 --- a/avahi-common/simple-watch.h +++ b/avahi-common/simple-watch.h @@ -28,9 +28,7 @@  #include <avahi-common/cdecl.h>  #include <avahi-common/watch.h> -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_BEGIN -#endif  /** A main loop object. Main loops of this type aren't very flexible   * since they only support a single wakeup type. Nevertheless it @@ -84,8 +82,6 @@ int avahi_simple_poll_loop(AvahiSimplePoll *s);  /** Wakeup the main loop. (for threaded environments) */  void avahi_simple_poll_wakeup(AvahiSimplePoll *s); -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_END -#endif  #endif diff --git a/avahi-common/timeval.h b/avahi-common/timeval.h index d925719..8bdb073 100644 --- a/avahi-common/timeval.h +++ b/avahi-common/timeval.h @@ -29,9 +29,7 @@  #include <avahi-common/cdecl.h> -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_BEGIN -#endif  /** A numeric data type for storing microsecond values. (signed 64bit integer) */  typedef int64_t AvahiUsec; @@ -53,8 +51,6 @@ AvahiUsec avahi_age(const struct timeval *a);   * the jitter */  struct timeval *avahi_elapse_time(struct timeval *tv, unsigned ms, unsigned j); -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_END -#endif  #endif diff --git a/avahi-common/watch.h b/avahi-common/watch.h index b973683..bc8ae2f 100644 --- a/avahi-common/watch.h +++ b/avahi-common/watch.h @@ -29,9 +29,7 @@  #include <avahi-common/cdecl.h> -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_BEGIN -#endif  /** An I/O watch object */  typedef struct AvahiWatch AvahiWatch; @@ -95,9 +93,7 @@ struct AvahiPoll {      void (*timeout_free)(AvahiTimeout *t);  }; -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_END -#endif  #endif diff --git a/avahi-core/Makefile.am b/avahi-core/Makefile.am index cc93265..edf72c1 100644 --- a/avahi-core/Makefile.am +++ b/avahi-core/Makefile.am @@ -67,7 +67,7 @@ libavahi_core_la_SOURCES = \  	browse-service.c \  	resolve-service.c \  	dns.c dns.h \ -	rr.c rr.h \ +	rr.c rr.h rr-util.h \  	core.h lookup.h publish.h \  	log.c log.h \  	browse-dns-server.c \ diff --git a/avahi-core/announce.c b/avahi-core/announce.c index 10002b8..4fa73e2 100644 --- a/avahi-core/announce.c +++ b/avahi-core/announce.c @@ -28,6 +28,7 @@  #include "announce.h"  #include "log.h" +#include "rr-util.h"  #define AVAHI_ANNOUNCEMENT_JITTER_MSEC 250  #define AVAHI_PROBE_JITTER_MSEC 250 diff --git a/avahi-core/browse.c b/avahi-core/browse.c index cb2d326..caf59e7 100644 --- a/avahi-core/browse.c +++ b/avahi-core/browse.c @@ -36,6 +36,7 @@  #include "log.h"  #include "querier.h"  #include "domain-util.h" +#include "rr-util.h"  #define AVAHI_LOOKUPS_PER_BROWSER_MAX 15 diff --git a/avahi-core/cache.c b/avahi-core/cache.c index bfbbf85..5e87706 100644 --- a/avahi-core/cache.c +++ b/avahi-core/cache.c @@ -31,6 +31,7 @@  #include "cache.h"  #include "log.h" +#include "rr-util.h"  #define AVAHI_CACHE_ENTRIES_MAX 500 diff --git a/avahi-core/core.h b/avahi-core/core.h index 6875218..78020ee 100644 --- a/avahi-core/core.h +++ b/avahi-core/core.h @@ -24,28 +24,16 @@  /** \file core.h The Avahi Multicast DNS and DNS Service Discovery implementation. */ - -#include <avahi-common/cdecl.h> - -#ifndef DOXYGEN_SHOULD_SKIP_THIS -AVAHI_C_DECL_BEGIN -#endif -  /** An mDNS responder object */  typedef struct AvahiServer AvahiServer; -#ifndef DOXYGEN_SHOULD_SKIP_THIS -AVAHI_C_DECL_END -#endif - -#include <avahi-core/rr.h> +#include <avahi-common/cdecl.h>  #include <avahi-common/address.h>  #include <avahi-common/defs.h>  #include <avahi-common/watch.h> +#include <avahi-core/rr.h> -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_BEGIN -#endif  /** Maximum number of defined DNS servers for wide area DNS */  #define AVAHI_WIDE_AREA_SERVERS_MAX 4 @@ -157,8 +145,6 @@ uint32_t avahi_server_get_local_service_cookie(AvahiServer *s);  /** Set the wide area DNS servers */  int avahi_server_set_wide_area_servers(AvahiServer *s, const AvahiAddress *a, unsigned n); -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_END -#endif  #endif diff --git a/avahi-core/dns-srv-rr.h b/avahi-core/dns-srv-rr.h index c6a5770..1a7f95f 100644 --- a/avahi-core/dns-srv-rr.h +++ b/avahi-core/dns-srv-rr.h @@ -34,9 +34,7 @@ typedef struct AvahiSDNSServerBrowser AvahiSDNSServerBrowser;  #include <avahi-core/core.h>  #include <avahi-core/publish.h> -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_BEGIN -#endif  /** The type of DNS server */  typedef enum { @@ -86,8 +84,6 @@ AvahiSDNSServerBrowser *avahi_s_dns_server_browser_new(  /** Free an AvahiSDNSServerBrowser object */  void avahi_s_dns_server_browser_free(AvahiSDNSServerBrowser *b); -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_END -#endif  #endif diff --git a/avahi-core/entry.c b/avahi-core/entry.c index 89f313e..7afad47 100644 --- a/avahi-core/entry.c +++ b/avahi-core/entry.c @@ -45,6 +45,7 @@  #include "log.h"  #include "util.h"  #include "dns-srv-rr.h" +#include "rr-util.h"  void avahi_entry_free(AvahiServer*s, AvahiEntry *e) {      AvahiEntry *t; diff --git a/avahi-core/log.h b/avahi-core/log.h index bb32ccc..25e3940 100644 --- a/avahi-core/log.h +++ b/avahi-core/log.h @@ -70,7 +70,6 @@ void avahi_log_info(const char*format, ...) AVAHI_GCC_PRINTF_ATTR12;  /** Shortcut for avahi_log(AVAHI_LOG_DEBUG, ...) */  void avahi_log_debug(const char*format, ...) AVAHI_GCC_PRINTF_ATTR12; -  AVAHI_C_DECL_END  #endif diff --git a/avahi-core/lookup.h b/avahi-core/lookup.h index f66a086..0ce6fe8 100644 --- a/avahi-core/lookup.h +++ b/avahi-core/lookup.h @@ -52,9 +52,7 @@ typedef struct AvahiSServiceResolver AvahiSServiceResolver;  #include <avahi-common/defs.h>  #include <avahi-core/core.h> -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_BEGIN -#endif  /** Callback prototype for AvahiSRecordBrowser events */  typedef void (*AvahiSRecordBrowserCallback)( @@ -234,8 +232,6 @@ AvahiSServiceResolver *avahi_s_service_resolver_new(  /** Free an AvahiSServiceResolver object */  void avahi_s_service_resolver_free(AvahiSServiceResolver *r); -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_END -#endif  #endif diff --git a/avahi-core/multicast-lookup.c b/avahi-core/multicast-lookup.c index 7ae45ea..fa8c859 100644 --- a/avahi-core/multicast-lookup.c +++ b/avahi-core/multicast-lookup.c @@ -32,6 +32,7 @@  #include "log.h"  #include "hashmap.h"  #include "multicast-lookup.h" +#include "rr-util.h"  struct AvahiMulticastLookup {      AvahiMulticastLookupEngine *engine; diff --git a/avahi-core/probe-sched.c b/avahi-core/probe-sched.c index 71359b5..7a302c3 100644 --- a/avahi-core/probe-sched.c +++ b/avahi-core/probe-sched.c @@ -29,6 +29,7 @@  #include "probe-sched.h"  #include "log.h" +#include "rr-util.h"  #define AVAHI_PROBE_HISTORY_MSEC 150  #define AVAHI_PROBE_DEFER_MSEC 50 diff --git a/avahi-core/publish.h b/avahi-core/publish.h index 281ed42..77c49af 100644 --- a/avahi-core/publish.h +++ b/avahi-core/publish.h @@ -34,9 +34,7 @@ typedef struct AvahiSEntryGroup AvahiSEntryGroup;  #include <avahi-common/cdecl.h>  #include <avahi-core/core.h> -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_BEGIN -#endif  /** Prototype for callback functions which are called whenever the state of an AvahiSEntryGroup object changes */  typedef void (*AvahiSEntryGroupCallback) (AvahiServer *s, AvahiSEntryGroup *g, AvahiEntryGroupState state, void* userdata); @@ -174,8 +172,6 @@ int avahi_server_update_service_txt(  /** Check if there is a service locally defined and return the entry group it is attached to. Returns NULL if the service isn't local*/  int avahi_server_get_group_of_service(AvahiServer *s, AvahiIfIndex interface, AvahiProtocol protocol, const char *name, const char *type, const char *domain, AvahiSEntryGroup** ret_group); -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_END -#endif  #endif diff --git a/avahi-core/response-sched.c b/avahi-core/response-sched.c index 65a32af..6883771 100644 --- a/avahi-core/response-sched.c +++ b/avahi-core/response-sched.c @@ -28,6 +28,7 @@  #include "response-sched.h"  #include "log.h" +#include "rr-util.h"  /* Local packets are supressed this long after sending them */  #define AVAHI_RESPONSE_HISTORY_MSEC 500 diff --git a/avahi-core/rr-util.h b/avahi-core/rr-util.h new file mode 100644 index 0000000..b3c35b4 --- /dev/null +++ b/avahi-core/rr-util.h @@ -0,0 +1,64 @@ +#ifndef foorrutilhfoo +#define foorrutilhfoo + +/* $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 +  USA. +***/ + +#include "rr.h" + +AVAHI_C_DECL_BEGIN + +/** Creaze new AvahiKey object based on an existing key but replaceing the type by CNAME */ +AvahiKey *avahi_key_new_cname(AvahiKey *key); + +/** Match a key to a key pattern. The pattern has a type of +AVAHI_DNS_CLASS_ANY, the classes are taken to be equal. Same for the +type. If the pattern has neither class nor type with ANY constants, +this function is identical to avahi_key_equal(). In contrast to +avahi_equal() this function is not commutative. */ +int avahi_key_pattern_match(const AvahiKey *pattern, const AvahiKey *k); + +/** Check whether a key is a pattern key, i.e. the class/type has a + * value of AVAHI_DNS_CLASS_ANY/AVAHI_DNS_TYPE_ANY */ +int avahi_key_is_pattern(const AvahiKey *k); + +/** Returns a maximum estimate for the space that is needed to store + * this key in a DNS packet. */ +size_t avahi_key_get_estimate_size(AvahiKey *k); + +/** Returns a maximum estimate for the space that is needed to store + * the record in a DNS packet. */ +size_t avahi_record_get_estimate_size(AvahiRecord *r); + +/** Do a mDNS spec conforming lexicographical comparison of the two + * records. Return a negative value if a < b, a positive if a > b, + * zero if equal. */ +int avahi_record_lexicographical_compare(AvahiRecord *a, AvahiRecord *b); + +/** Return 1 if the specified record is an mDNS goodbye record. i.e. TTL is zero. */ +int avahi_record_is_goodbye(AvahiRecord *r); + +/** Make a deep copy of an AvahiRecord object */ +AvahiRecord *avahi_record_copy(AvahiRecord *r); + +AVAHI_C_DECL_END + +#endif diff --git a/avahi-core/rr.c b/avahi-core/rr.c index e7fac13..e88d3c6 100644 --- a/avahi-core/rr.c +++ b/avahi-core/rr.c @@ -38,6 +38,7 @@  #include "util.h"  #include "hashmap.h"  #include "domain-util.h" +#include "rr-util.h"  AvahiKey *avahi_key_new(const char *name, uint16_t class, uint16_t type) {      AvahiKey *k; diff --git a/avahi-core/rr.h b/avahi-core/rr.h index 21d6d63..a2d430a 100644 --- a/avahi-core/rr.h +++ b/avahi-core/rr.h @@ -66,7 +66,7 @@ enum {      name. Use avahi_key_ref()/avahi_key_unref() for manipulating the      reference counter. The structure is intended to be treated as "immutable", no      changes should be imposed after creation */ -typedef struct { +typedef struct AvahiKey {      int ref;           /**< Reference counter */      char *name;        /**< Record name */      uint16_t clazz;    /**< Record class, one of the AVAHI_DNS_CLASS_xxx constants */ @@ -76,7 +76,7 @@ typedef struct {  /** Encapsulates a DNS resource record. The structure is intended to   * be treated as "immutable", no changes should be imposed after   * creation. */ -typedef struct  { +typedef struct AvahiRecord {      int ref;         /**< Reference counter */      AvahiKey *key;   /**< Reference to the query key of this record */ @@ -124,9 +124,6 @@ typedef struct  {  /** Create a new AvahiKey object. The reference counter will be set to 1. */  AvahiKey *avahi_key_new(const char *name, uint16_t clazz, uint16_t type); -/** Creaze new AvahiKey object based on an existing key but replaceing the type by CNAME */ -AvahiKey *avahi_key_new_cname(AvahiKey *key); -  /** Increase the reference counter of an AvahiKey object by one */  AvahiKey *avahi_key_ref(AvahiKey *k); @@ -138,17 +135,6 @@ void avahi_key_unref(AvahiKey *k);   * other class/type. */  int avahi_key_equal(const AvahiKey *a, const AvahiKey *b);  -/** Match a key to a key pattern. The pattern has a type of -AVAHI_DNS_CLASS_ANY, the classes are taken to be equal. Same for the -type. If the pattern has neither class nor type with ANY constants, -this function is identical to avahi_key_equal(). In contrast to -avahi_equal() this function is not commutative. */ -int avahi_key_pattern_match(const AvahiKey *pattern, const AvahiKey *k); - -/** Check whether a key is a pattern key, i.e. the class/type has a - * value of AVAHI_DNS_CLASS_ANY/AVAHI_DNS_TYPE_ANY */ -int avahi_key_is_pattern(const AvahiKey *k); -  /** Return a numeric hash value for a key for usage in hash tables. */  unsigned avahi_key_hash(const AvahiKey *k); @@ -183,25 +169,6 @@ char *avahi_record_to_string(const AvahiRecord *r);  /** Check whether two records are equal (regardless of the TTL */  int avahi_record_equal_no_ttl(const AvahiRecord *a, const AvahiRecord *b); -/** Make a deep copy of an AvahiRecord object */ -AvahiRecord *avahi_record_copy(AvahiRecord *r); - -/** Returns a maximum estimate for the space that is needed to store - * this key in a DNS packet. */ -size_t avahi_key_get_estimate_size(AvahiKey *k); - -/** Returns a maximum estimate for the space that is needed to store - * the record in a DNS packet. */ -size_t avahi_record_get_estimate_size(AvahiRecord *r); - -/** Do a mDNS spec conforming lexicographical comparison of the two - * records. Return a negative value if a < b, a positive if a > b, - * zero if equal. */ -int avahi_record_lexicographical_compare(AvahiRecord *a, AvahiRecord *b); - -/** Return 1 if the specified record is an mDNS goodbye record. i.e. TTL is zero. */ -int avahi_record_is_goodbye(AvahiRecord *r); -  /** Check whether the specified key is valid */  int avahi_key_is_valid(AvahiKey *k); diff --git a/avahi-core/server.c b/avahi-core/server.c index 5cac056..7b0a56e 100644 --- a/avahi-core/server.c +++ b/avahi-core/server.c @@ -47,6 +47,7 @@  #include "dns-srv-rr.h"  #include "addr-util.h"  #include "domain-util.h" +#include "rr-util.h"  static void enum_aux_records(AvahiServer *s, AvahiInterface *i, const char *name, uint16_t type, void (*callback)(AvahiServer *s, AvahiRecord *r, int flush_cache, void* userdata), void* userdata) {      assert(s); diff --git a/avahi-core/wide-area.c b/avahi-core/wide-area.c index d12267a..51e192e 100644 --- a/avahi-core/wide-area.c +++ b/avahi-core/wide-area.c @@ -39,6 +39,7 @@  #include "hashmap.h"  #include "wide-area.h"  #include "addr-util.h" +#include "rr-util.h"  #define CACHE_ENTRIES_MAX 500 diff --git a/avahi-glib/glib-malloc.h b/avahi-glib/glib-malloc.h index 7ce8269..5982e08 100644 --- a/avahi-glib/glib-malloc.h +++ b/avahi-glib/glib-malloc.h @@ -29,17 +29,13 @@  #include <avahi-common/cdecl.h>  #include <avahi-common/malloc.h> -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_BEGIN -#endif  /** Return a pointer to a memory allocator that uses GLib's g_malloc()   and frinds. Th returned structure is statically allocated, and needs   not to be copied or freed. Pass this directly to avahi_set_allocator(). */  const AvahiAllocator * avahi_glib_allocator(void); -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_END -#endif  #endif diff --git a/avahi-glib/glib-watch.h b/avahi-glib/glib-watch.h index e890a68..895a686 100644 --- a/avahi-glib/glib-watch.h +++ b/avahi-glib/glib-watch.h @@ -29,9 +29,7 @@  #include <avahi-common/cdecl.h>  #include <avahi-common/watch.h> -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_BEGIN -#endif  /** GLib main loop adapter. You can safely cast this into a GSource */  typedef struct AvahiGLibPoll AvahiGLibPoll; @@ -50,8 +48,6 @@ void avahi_glib_poll_free(AvahiGLibPoll *g);   * call */  const AvahiPoll *avahi_glib_poll_get(AvahiGLibPoll *g); -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_END -#endif  #endif diff --git a/avahi-qt/qt-watch.h b/avahi-qt/qt-watch.h index f6447ab..0a3476d 100644 --- a/avahi-qt/qt-watch.h +++ b/avahi-qt/qt-watch.h @@ -26,17 +26,11 @@  #include <avahi-common/watch.h> -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_BEGIN -#endif - -/** -Setup abstract poll structure for integration with Qt main loop  */ +/** Setup abstract poll structure for integration with Qt main loop  */  const AvahiPoll* avahi_qt_poll_get(void); -#ifndef DOXYGEN_SHOULD_SKIP_THIS  AVAHI_C_DECL_END -#endif  #endif diff --git a/doxygen.cfg b/doxygen.cfg index 3ee8daf..eee8b1d 100644 --- a/doxygen.cfg +++ b/doxygen.cfg @@ -169,12 +169,12 @@ PERLMOD_MAKEVAR_PREFIX =  # Configuration options related to the preprocessor     #---------------------------------------------------------------------------  ENABLE_PREPROCESSING   = YES -MACRO_EXPANSION        = NO -EXPAND_ONLY_PREDEF     = NO +MACRO_EXPANSION        = YES +EXPAND_ONLY_PREDEF     = YES  SEARCH_INCLUDES        = YES  INCLUDE_PATH           =   INCLUDE_FILE_PATTERNS  =  -PREDEFINED             = DOXYGEN_SHOULD_SKIP_THIS +PREDEFINED             = "DOXYGEN_SHOULD_SKIP_THIS" "AVAHI_C_DECL_BEGIN=" "AVAHI_C_DECL_END="  EXPAND_AS_DEFINED      =   SKIP_FUNCTION_MACROS   = YES  #---------------------------------------------------------------------------  | 
