#ifndef foocorehfoo
#define foocorehfoo
-/* $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
/** \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-common/timeval.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_MAX_WIDE_AREA_SERVERS 4
+#define AVAHI_WIDE_AREA_SERVERS_MAX 4
/** Prototype for callback functions which are called whenever the state of an AvahiServer object changes */
typedef void (*AvahiServerCallback) (AvahiServer *s, AvahiServerState state, void* userdata);
char *domain_name; /**< Default domain name. If left empty defaults to .local */
int use_ipv4; /**< Enable IPv4 support */
int use_ipv6; /**< Enable IPv6 support */
+ AvahiStringList *allow_interfaces;/**< Allow specific interface to be used for Avahi */
+ AvahiStringList *deny_interfaces; /**< Deny specific interfaces to be used for Avahi */
int publish_hinfo; /**< Register a HINFO record for the host containing the local OS and CPU type */
int publish_addresses; /**< Register A, AAAA and PTR records for all local IP addresses */
int publish_workstation; /**< Register a _workstation._tcp service */
int reflect_ipv; /**< if enable_reflector is 1, enable/disable reflecting between IPv4 and IPv6 */
int add_service_cookie; /**< Add magic service cookie to all locally generated records implicitly */
int enable_wide_area; /**< Enable wide area support */
- AvahiAddress wide_area_servers[AVAHI_MAX_WIDE_AREA_SERVERS]; /** Unicast DNS server to use for wide area lookup */
+ AvahiAddress wide_area_servers[AVAHI_WIDE_AREA_SERVERS_MAX]; /** Unicast DNS server to use for wide area lookup */
unsigned n_wide_area_servers; /**< Number of servers in wide_area_servers[] */
int disallow_other_stacks; /**< Make sure that only one mDNS responder is run at the same time on the local machine. If this is enable Avahi will not set SO_REUSADDR on its sockets, effectively preventing other stacks from running on the local machine */
+ AvahiStringList *browse_domains; /**< Additional browsing domains */
+ int disable_publishing; /**< Disable publishing of any record */
+ int allow_point_to_point; /**< Enable publishing on POINTOPOINT interfaces */
+ int publish_a_on_ipv6; /**< Publish an IPv4 A RR on IPv6 sockets */
+ int publish_aaaa_on_ipv4; /**< Publish an IPv4 A RR on IPv6 sockets */
+ unsigned n_cache_entries_max; /**< Maximum number of cache entries per interface */
+ AvahiUsec ratelimit_interval; /**< If non-zero, rate-limiting interval parameter. */
+ unsigned ratelimit_burst; /**< If ratelimit_interval is non-zero, rate-limiting burst parameter. */
} AvahiServerConfig;
/** Allocate a new mDNS responder object. */
/** Return the local service cookie */
uint32_t avahi_server_get_local_service_cookie(AvahiServer *s);
-/** Return 1 if there is a local service with the specified credentials registeresd. Return 0 if not, negative on failure */
-int avahi_server_is_service_local(AvahiServer *s, AvahiIfIndex, AvahiProtocol protocol, const char *name, const char *type, const char*domain);
-
/** 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
+/** Set the browsing domains */
+int avahi_server_set_browse_domains(AvahiServer *s, AvahiStringList *domains);
+
+/** Return the current configuration of the server \since 0.6.17 */
+const AvahiServerConfig* avahi_server_get_config(AvahiServer *s);
+
AVAHI_C_DECL_END
-#endif
#endif