X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-core%2Fcore.h;h=2951f6d34efc41f381a096e8f28bc4ce950ffb68;hb=88a99a094e561b6c87404f4999e61e7b9ed754f6;hp=bacb97e455eccd2a240a8f9387c0c556d4323b03;hpb=f43187377e0c89ba02ca23e88efa01bbb255e037;p=catta diff --git a/avahi-core/core.h b/avahi-core/core.h index bacb97e..2951f6d 100644 --- a/avahi-core/core.h +++ b/avahi-core/core.h @@ -26,9 +26,18 @@ /** \file core.h The Avahi Multicast DNS and DNS Service Discovery implmentation. */ +/** \example publish-service.c Example how to register a DNS-SD + * service using an embedded mDNS stack. It behaves like a network + * printer registering both an IPP and a BSD LPR service. */ + +/** \example browse-services.c Example how to browse for DNS-SD + * services using an embedded mDNS stack. */ + #include +#ifndef DOXYGEN_SHOULD_SKIP_THIS AVAHI_C_DECL_BEGIN +#endif /** An mDNS responder object */ typedef struct AvahiServer AvahiServer; @@ -39,21 +48,51 @@ typedef struct AvahiEntry AvahiEntry; /** A group of locally registered DNS RRs */ typedef struct AvahiEntryGroup AvahiEntryGroup; +#ifndef DOXYGEN_SHOULD_SKIP_THIS AVAHI_C_DECL_END +#endif #include #include #include +#ifndef DOXYGEN_SHOULD_SKIP_THIS AVAHI_C_DECL_BEGIN +#endif + +/** Error codes used by avahi */ +enum { + AVAHI_OK = 0, /**< OK */ + AVAHI_ERR_FAILURE = -1, /**< Generic error code */ + AVAHI_ERR_BAD_STATE = -2, /**< Object was in a bad state */ + AVAHI_ERR_INVALID_HOST_NAME = -3, /**< Invalid host name */ + AVAHI_ERR_INVALID_DOMAIN_NAME = -4, /**< Invalid domain name */ + AVAHI_ERR_NO_NETWORK = -5, /**< No suitable network protocol available */ + AVAHI_ERR_INVALID_TTL = -6, /**< Invalid DNS TTL */ + AVAHI_ERR_IS_PATTERN = -7, /**< RR key is pattern */ + AVAHI_ERR_LOCAL_COLLISION = -8, /**< Local name collision */ + AVAHI_ERR_INVALID_RECORD = -9, /**< Invalid RR */ + AVAHI_ERR_INVALID_SERVICE_NAME = -10, /**< Invalid service name */ + AVAHI_ERR_INVALID_SERVICE_TYPE = -11, /**< Invalid service type */ + AVAHI_ERR_INVALID_PORT = -12, /**< Invalid port number */ + AVAHI_ERR_INVALID_KEY = -13, /**< Invalid key */ + AVAHI_ERR_INVALID_ADDRESS = -14, /**< Invalid address */ + AVAHI_ERR_TIMEOUT = -15, /**< Timeout reached */ + AVAHI_ERR_TOO_MANY_CLIENTS = -16, /**< Too many clients */ + AVAHI_ERR_TOO_MANY_OBJECTS = -17, /**< Too many objects */ + AVAHI_ERR_TOO_MANY_ENTRIES = -18, /**< Too many entries */ + AVAHI_ERR_OS = -19, /**< OS error */ + AVAHI_ERR_ACCESS_DENIED = -20, /**< Access denied */ + AVAHI_ERR_INVALID_OPERATION = -21, /**< Invalid operation */ + AVAHI_ERR_MAX = -22 +}; /** States of a server object */ typedef enum { AVAHI_SERVER_INVALID = -1, /**< Invalid state (initial) */ AVAHI_SERVER_REGISTERING = 0, /**< Host RRs are being registered */ AVAHI_SERVER_RUNNING, /**< All host RRs have been established */ - AVAHI_SERVER_COLLISION, /**< There is a collision with a host RR. All host RRs have been withdrawn, the user should set a new host name via avahi_server_set_host_name() */ - AVAHI_SERVER_SLEEPING /**< The host or domain name has changed and the server waits for old entries to be expired */ + AVAHI_SERVER_COLLISION /**< There is a collision with a host RR. All host RRs have been withdrawn, the user should set a new host name via avahi_server_set_host_name() */ } AvahiServerState; /** Flags for server entries */ @@ -100,7 +139,8 @@ AvahiServer *avahi_server_new( GMainContext *c, /**< The GLIB main loop context to attach to */ const AvahiServerConfig *sc, /**< If non-NULL a pointer to a configuration structure for the server. The server makes an internal deep copy of this structure, so you may free it using avahi_server_config_done() immediately after calling this function. */ AvahiServerCallback callback, /**< A callback which is called whenever the state of the server changes */ - gpointer userdata /**< An opaque pointer which is passed to the callback function */); + gpointer userdata, /**< An opaque pointer which is passed to the callback function */ + gint *error); /** Free an mDNS responder object */ void avahi_server_free(AvahiServer* s); @@ -189,6 +229,12 @@ void avahi_entry_group_free(AvahiEntryGroup *g); /** Commit an entry group. This starts the probing and registration process for all RRs in the group */ gint avahi_entry_group_commit(AvahiEntryGroup *g); +/** Remove all entries from the entry group and reset the state to AVAHI_ENTRY_GROUP_UNCOMMITED. */ +void avahi_entry_group_reset(AvahiEntryGroup *g); + +/** Return TRUE if the entry group is empty, i.e. has no records attached. */ +gboolean avahi_entry_group_is_empty(AvahiEntryGroup *g); + /** Return the current state of the specified entry group */ AvahiEntryGroupState avahi_entry_group_get_state(AvahiEntryGroup *g); @@ -584,6 +630,14 @@ AvahiDNSServerBrowser *avahi_dns_server_browser_new( /** Free an AvahiDNSServerBrowser object */ void avahi_dns_server_browser_free(AvahiDNSServerBrowser *b); +/** Return a human readable error string for the specified error code */ +const gchar *avahi_strerror(gint error); + +/** Return the last error code */ +gint avahi_server_errno(AvahiServer *s); + +#ifndef DOXYGEN_SHOULD_SKIP_THIS AVAHI_C_DECL_END +#endif #endif