docs(src): add examples alias and general cleanup (#2763)
This commit is contained in:
parent
49b6efcdfd
commit
1dd4b68e1c
142 changed files with 4218 additions and 1177 deletions
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* @file src/platform/linux/publish.cpp
|
||||
* @brief todo
|
||||
* @brief Definitions for publishing services on Linux.
|
||||
* @note Adapted from https://www.avahi.org/doxygen/html/client-publish-service_8c-example.html
|
||||
* @todo Use a common file for this and src/platform/macos/publish.cpp
|
||||
*/
|
||||
|
|
@ -21,122 +21,118 @@ namespace avahi {
|
|||
* @brief Error codes used by avahi.
|
||||
*/
|
||||
enum err_e {
|
||||
OK = 0, /**< OK */
|
||||
ERR_FAILURE = -1, /**< Generic error code */
|
||||
ERR_BAD_STATE = -2, /**< Object was in a bad state */
|
||||
ERR_INVALID_HOST_NAME = -3, /**< Invalid host name */
|
||||
ERR_INVALID_DOMAIN_NAME = -4, /**< Invalid domain name */
|
||||
ERR_NO_NETWORK = -5, /**< No suitable network protocol available */
|
||||
ERR_INVALID_TTL = -6, /**< Invalid DNS TTL */
|
||||
ERR_IS_PATTERN = -7, /**< RR key is pattern */
|
||||
ERR_COLLISION = -8, /**< Name collision */
|
||||
ERR_INVALID_RECORD = -9, /**< Invalid RR */
|
||||
OK = 0, ///< OK
|
||||
ERR_FAILURE = -1, ///< Generic error code
|
||||
ERR_BAD_STATE = -2, ///< Object was in a bad state
|
||||
ERR_INVALID_HOST_NAME = -3, ///< Invalid host name
|
||||
ERR_INVALID_DOMAIN_NAME = -4, ///< Invalid domain name
|
||||
ERR_NO_NETWORK = -5, ///< No suitable network protocol available
|
||||
ERR_INVALID_TTL = -6, ///< Invalid DNS TTL
|
||||
ERR_IS_PATTERN = -7, ///< RR key is pattern
|
||||
ERR_COLLISION = -8, ///< Name collision
|
||||
ERR_INVALID_RECORD = -9, ///< Invalid RR
|
||||
|
||||
ERR_INVALID_SERVICE_NAME = -10, /**< Invalid service name */
|
||||
ERR_INVALID_SERVICE_TYPE = -11, /**< Invalid service type */
|
||||
ERR_INVALID_PORT = -12, /**< Invalid port number */
|
||||
ERR_INVALID_KEY = -13, /**< Invalid key */
|
||||
ERR_INVALID_ADDRESS = -14, /**< Invalid address */
|
||||
ERR_TIMEOUT = -15, /**< Timeout reached */
|
||||
ERR_TOO_MANY_CLIENTS = -16, /**< Too many clients */
|
||||
ERR_TOO_MANY_OBJECTS = -17, /**< Too many objects */
|
||||
ERR_TOO_MANY_ENTRIES = -18, /**< Too many entries */
|
||||
ERR_OS = -19, /**< OS error */
|
||||
ERR_INVALID_SERVICE_NAME = -10, ///< Invalid service name
|
||||
ERR_INVALID_SERVICE_TYPE = -11, ///< Invalid service type
|
||||
ERR_INVALID_PORT = -12, ///< Invalid port number
|
||||
ERR_INVALID_KEY = -13, ///< Invalid key
|
||||
ERR_INVALID_ADDRESS = -14, ///< Invalid address
|
||||
ERR_TIMEOUT = -15, ///< Timeout reached
|
||||
ERR_TOO_MANY_CLIENTS = -16, ///< Too many clients
|
||||
ERR_TOO_MANY_OBJECTS = -17, ///< Too many objects
|
||||
ERR_TOO_MANY_ENTRIES = -18, ///< Too many entries
|
||||
ERR_OS = -19, ///< OS error
|
||||
|
||||
ERR_ACCESS_DENIED = -20, /**< Access denied */
|
||||
ERR_INVALID_OPERATION = -21, /**< Invalid operation */
|
||||
ERR_DBUS_ERROR = -22, /**< An unexpected D-Bus error occurred */
|
||||
ERR_DISCONNECTED = -23, /**< Daemon connection failed */
|
||||
ERR_NO_MEMORY = -24, /**< Memory exhausted */
|
||||
ERR_INVALID_OBJECT = -25, /**< The object passed to this function was invalid */
|
||||
ERR_NO_DAEMON = -26, /**< Daemon not running */
|
||||
ERR_INVALID_INTERFACE = -27, /**< Invalid interface */
|
||||
ERR_INVALID_PROTOCOL = -28, /**< Invalid protocol */
|
||||
ERR_INVALID_FLAGS = -29, /**< Invalid flags */
|
||||
ERR_ACCESS_DENIED = -20, ///< Access denied
|
||||
ERR_INVALID_OPERATION = -21, ///< Invalid operation
|
||||
ERR_DBUS_ERROR = -22, ///< An unexpected D-Bus error occurred
|
||||
ERR_DISCONNECTED = -23, ///< Daemon connection failed
|
||||
ERR_NO_MEMORY = -24, ///< Memory exhausted
|
||||
ERR_INVALID_OBJECT = -25, ///< The object passed to this function was invalid
|
||||
ERR_NO_DAEMON = -26, ///< Daemon not running
|
||||
ERR_INVALID_INTERFACE = -27, ///< Invalid interface
|
||||
ERR_INVALID_PROTOCOL = -28, ///< Invalid protocol
|
||||
ERR_INVALID_FLAGS = -29, ///< Invalid flags
|
||||
|
||||
ERR_NOT_FOUND = -30, /**< Not found */
|
||||
ERR_INVALID_CONFIG = -31, /**< Configuration error */
|
||||
ERR_VERSION_MISMATCH = -32, /**< Version mismatch */
|
||||
ERR_INVALID_SERVICE_SUBTYPE = -33, /**< Invalid service subtype */
|
||||
ERR_INVALID_PACKET = -34, /**< Invalid packet */
|
||||
ERR_INVALID_DNS_ERROR = -35, /**< Invalid DNS return code */
|
||||
ERR_DNS_FORMERR = -36, /**< DNS Error: Form error */
|
||||
ERR_DNS_SERVFAIL = -37, /**< DNS Error: Server Failure */
|
||||
ERR_DNS_NXDOMAIN = -38, /**< DNS Error: No such domain */
|
||||
ERR_DNS_NOTIMP = -39, /**< DNS Error: Not implemented */
|
||||
ERR_NOT_FOUND = -30, ///< Not found
|
||||
ERR_INVALID_CONFIG = -31, ///< Configuration error
|
||||
ERR_VERSION_MISMATCH = -32, ///< Version mismatch
|
||||
ERR_INVALID_SERVICE_SUBTYPE = -33, ///< Invalid service subtype
|
||||
ERR_INVALID_PACKET = -34, ///< Invalid packet
|
||||
ERR_INVALID_DNS_ERROR = -35, ///< Invalid DNS return code
|
||||
ERR_DNS_FORMERR = -36, ///< DNS Error: Form error
|
||||
ERR_DNS_SERVFAIL = -37, ///< DNS Error: Server Failure
|
||||
ERR_DNS_NXDOMAIN = -38, ///< DNS Error: No such domain
|
||||
ERR_DNS_NOTIMP = -39, ///< DNS Error: Not implemented
|
||||
|
||||
ERR_DNS_REFUSED = -40, /**< DNS Error: Operation refused */
|
||||
ERR_DNS_YXDOMAIN = -41,
|
||||
ERR_DNS_YXRRSET = -42,
|
||||
ERR_DNS_NXRRSET = -43,
|
||||
ERR_DNS_NOTAUTH = -44, /**< DNS Error: Not authorized */
|
||||
ERR_DNS_NOTZONE = -45,
|
||||
ERR_INVALID_RDATA = -46, /**< Invalid RDATA */
|
||||
ERR_INVALID_DNS_CLASS = -47, /**< Invalid DNS class */
|
||||
ERR_INVALID_DNS_TYPE = -48, /**< Invalid DNS type */
|
||||
ERR_NOT_SUPPORTED = -49, /**< Not supported */
|
||||
ERR_DNS_REFUSED = -40, ///< DNS Error: Operation refused
|
||||
ERR_DNS_YXDOMAIN = -41, ///< TODO
|
||||
ERR_DNS_YXRRSET = -42, ///< TODO
|
||||
ERR_DNS_NXRRSET = -43, ///< TODO
|
||||
ERR_DNS_NOTAUTH = -44, ///< DNS Error: Not authorized
|
||||
ERR_DNS_NOTZONE = -45, ///< TODO
|
||||
ERR_INVALID_RDATA = -46, ///< Invalid RDATA
|
||||
ERR_INVALID_DNS_CLASS = -47, ///< Invalid DNS class
|
||||
ERR_INVALID_DNS_TYPE = -48, ///< Invalid DNS type
|
||||
ERR_NOT_SUPPORTED = -49, ///< Not supported
|
||||
|
||||
ERR_NOT_PERMITTED = -50, /**< Operation not permitted */
|
||||
ERR_INVALID_ARGUMENT = -51, /**< Invalid argument */
|
||||
ERR_IS_EMPTY = -52, /**< Is empty */
|
||||
ERR_NO_CHANGE = -53, /**< The requested operation is invalid because it is redundant */
|
||||
ERR_NOT_PERMITTED = -50, ///< Operation not permitted
|
||||
ERR_INVALID_ARGUMENT = -51, ///< Invalid argument
|
||||
ERR_IS_EMPTY = -52, ///< Is empty
|
||||
ERR_NO_CHANGE = -53, ///< The requested operation is invalid because it is redundant
|
||||
|
||||
ERR_MAX = -54
|
||||
ERR_MAX = -54 ///< TODO
|
||||
};
|
||||
|
||||
constexpr auto IF_UNSPEC = -1;
|
||||
enum proto {
|
||||
PROTO_INET = 0, /**< IPv4 */
|
||||
PROTO_INET6 = 1, /**< IPv6 */
|
||||
PROTO_UNSPEC = -1 /**< Unspecified/all protocol(s) */
|
||||
PROTO_INET = 0, ///< IPv4
|
||||
PROTO_INET6 = 1, ///< IPv6
|
||||
PROTO_UNSPEC = -1 ///< Unspecified/all protocol(s)
|
||||
};
|
||||
|
||||
enum ServerState {
|
||||
SERVER_INVALID, /**< Invalid state (initial) */
|
||||
SERVER_REGISTERING, /**< Host RRs are being registered */
|
||||
SERVER_RUNNING, /**< All host RRs have been established */
|
||||
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() */
|
||||
SERVER_FAILURE /**< Some fatal failure happened, the server is unable to proceed */
|
||||
SERVER_INVALID, ///< Invalid state (initial)
|
||||
SERVER_REGISTERING, ///< Host RRs are being registered
|
||||
SERVER_RUNNING, ///< All host RRs have been established
|
||||
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()
|
||||
SERVER_FAILURE ///< Some fatal failure happened, the server is unable to proceed
|
||||
};
|
||||
|
||||
enum ClientState {
|
||||
CLIENT_S_REGISTERING = SERVER_REGISTERING, /**< Server state: REGISTERING */
|
||||
CLIENT_S_RUNNING = SERVER_RUNNING, /**< Server state: RUNNING */
|
||||
CLIENT_S_COLLISION = SERVER_COLLISION, /**< Server state: COLLISION */
|
||||
CLIENT_FAILURE = 100, /**< Some kind of error happened on the client side */
|
||||
CLIENT_CONNECTING = 101 /**< We're still connecting. This state is only entered when AVAHI_CLIENT_NO_FAIL has been passed to avahi_client_new() and the daemon is not yet available. */
|
||||
CLIENT_S_REGISTERING = SERVER_REGISTERING, ///< Server state: REGISTERING
|
||||
CLIENT_S_RUNNING = SERVER_RUNNING, ///< Server state: RUNNING
|
||||
CLIENT_S_COLLISION = SERVER_COLLISION, ///< Server state: COLLISION
|
||||
CLIENT_FAILURE = 100, ///< Some kind of error happened on the client side
|
||||
CLIENT_CONNECTING = 101 ///< We're still connecting. This state is only entered when AVAHI_CLIENT_NO_FAIL has been passed to avahi_client_new() and the daemon is not yet available.
|
||||
};
|
||||
|
||||
enum EntryGroupState {
|
||||
ENTRY_GROUP_UNCOMMITED, /**< The group has not yet been committed, the user must still call avahi_entry_group_commit() */
|
||||
ENTRY_GROUP_REGISTERING, /**< The entries of the group are currently being registered */
|
||||
ENTRY_GROUP_ESTABLISHED, /**< The entries have successfully been established */
|
||||
ENTRY_GROUP_COLLISION, /**< A name collision for one of the entries in the group has been detected, the entries have been withdrawn */
|
||||
ENTRY_GROUP_FAILURE /**< Some kind of failure happened, the entries have been withdrawn */
|
||||
ENTRY_GROUP_UNCOMMITED, ///< The group has not yet been committed, the user must still call avahi_entry_group_commit()
|
||||
ENTRY_GROUP_REGISTERING, ///< The entries of the group are currently being registered
|
||||
ENTRY_GROUP_ESTABLISHED, ///< The entries have successfully been established
|
||||
ENTRY_GROUP_COLLISION, ///< A name collision for one of the entries in the group has been detected, the entries have been withdrawn
|
||||
ENTRY_GROUP_FAILURE ///< Some kind of failure happened, the entries have been withdrawn
|
||||
};
|
||||
|
||||
enum ClientFlags {
|
||||
CLIENT_IGNORE_USER_CONFIG = 1, /**< Don't read user configuration */
|
||||
CLIENT_NO_FAIL = 2 /**< Don't fail if the daemon is not available when avahi_client_new() is called, instead enter CLIENT_CONNECTING state and wait for the daemon to appear */
|
||||
CLIENT_IGNORE_USER_CONFIG = 1, ///< Don't read user configuration
|
||||
CLIENT_NO_FAIL = 2 ///< Don't fail if the daemon is not available when avahi_client_new() is called, instead enter CLIENT_CONNECTING state and wait for the daemon to appear
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Flags for publishing functions.
|
||||
*/
|
||||
enum PublishFlags {
|
||||
PUBLISH_UNIQUE = 1, /**< For raw records: The RRset is intended to be unique */
|
||||
PUBLISH_NO_PROBE = 2, /**< For raw records: Though the RRset is intended to be unique no probes shall be sent */
|
||||
PUBLISH_NO_ANNOUNCE = 4, /**< For raw records: Do not announce this RR to other hosts */
|
||||
PUBLISH_ALLOW_MULTIPLE = 8, /**< For raw records: Allow multiple local records of this type, even if they are intended to be unique */
|
||||
/** \cond fulldocs */
|
||||
PUBLISH_NO_REVERSE = 16, /**< For address records: don't create a reverse (PTR) entry */
|
||||
PUBLISH_NO_COOKIE = 32, /**< For service records: do not implicitly add the local service cookie to TXT data */
|
||||
/** \endcond */
|
||||
PUBLISH_UPDATE = 64, /**< Update existing records instead of adding new ones */
|
||||
/** \cond fulldocs */
|
||||
PUBLISH_USE_WIDE_AREA = 128, /**< Register the record using wide area DNS (i.e. unicast DNS update) */
|
||||
PUBLISH_USE_MULTICAST = 256 /**< Register the record using multicast DNS */
|
||||
/** \endcond */
|
||||
PUBLISH_UNIQUE = 1, ///< For raw records: The RRset is intended to be unique
|
||||
PUBLISH_NO_PROBE = 2, ///< For raw records: Though the RRset is intended to be unique no probes shall be sent
|
||||
PUBLISH_NO_ANNOUNCE = 4, ///< For raw records: Do not announce this RR to other hosts
|
||||
PUBLISH_ALLOW_MULTIPLE = 8, ///< For raw records: Allow multiple local records of this type, even if they are intended to be unique
|
||||
PUBLISH_NO_REVERSE = 16, ///< For address records: don't create a reverse (PTR) entry
|
||||
PUBLISH_NO_COOKIE = 32, ///< For service records: do not implicitly add the local service cookie to TXT data
|
||||
PUBLISH_UPDATE = 64, ///< Update existing records instead of adding new ones
|
||||
PUBLISH_USE_WIDE_AREA = 128, ///< Register the record using wide area DNS (i.e. unicast DNS update)
|
||||
PUBLISH_USE_MULTICAST = 256 ///< Register the record using multicast DNS
|
||||
};
|
||||
|
||||
using IfIndex = int;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue