X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-core%2Fcore.h;h=f50c6128ad69ee6c35cc73497d8bd5794006d0a6;hb=72f1f558f1e4261e4a10b5cefc77c9ac76f9bbff;hp=705fa317983ff3afe4774a86a087c34a4751a9e8;hpb=1ffedb586bd2fb6daa3970304fac7c5b415cd38f;p=catta diff --git a/avahi-core/core.h b/avahi-core/core.h index 705fa31..f50c612 100644 --- a/avahi-core/core.h +++ b/avahi-core/core.h @@ -1,21 +1,19 @@ #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 @@ -24,40 +22,20 @@ /** \file core.h The Avahi Multicast DNS and DNS Service Discovery implementation. */ - -#include - -#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 +#include #include #include #include +#include +#include -#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 - -/** Flags for server entries */ -typedef enum { - AVAHI_ENTRY_NULL = 0, /**< No special flags */ - AVAHI_ENTRY_UNIQUE = 1, /**< The RRset is intended to be unique */ - AVAHI_ENTRY_NOPROBE = 2, /**< Though the RRset is intended to be unique no probes shall be sent */ - AVAHI_ENTRY_NOANNOUNCE = 4, /**< Do not announce this RR to other hosts */ - AVAHI_ENTRY_ALLOWMUTIPLE = 8 /**< Allow multiple local records of this type, even if they are intended to be unique */ -} AvahiEntryFlags; +#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); @@ -68,6 +46,8 @@ typedef struct AvahiServerConfig { 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 */ @@ -78,8 +58,17 @@ typedef struct AvahiServerConfig { 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. */ @@ -162,14 +151,15 @@ int avahi_server_errno(AvahiServer *s); /** 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