From abf3e40902abe9a3b32aba0d1691b209b4d32e66 Mon Sep 17 00:00:00 2001 From: Joshua Colp Date: Wed, 25 Mar 2015 12:32:26 +0000 Subject: dns: Add core DNS API + unit tests and res_resolver_unbound module + unit tests. This change adds an abstracted core DNS API which resembles the API described here[1]. The API provides a pluggable mechanism for resolvers and also a consistent view for records. Both synchronous and asynchronous queries are supported. This change also adds a res_resolver_unbound module which uses the libunbound library to provide resolution. Unit tests have also been written for all of the above to confirm the API and functionality. ASTERISK-24834 #close Reported by: Matt Jordan ASTERISK-24836 #close Reported by: Matt Jordan Review: https://reviewboard.asterisk.org/r/4474/ Review: https://reviewboard.asterisk.org/r/4512/ [1] https://wiki.asterisk.org/wiki/display/AST/Asterisk+DNS+API git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@433370 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- include/asterisk/dns_naptr.h | 89 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 include/asterisk/dns_naptr.h (limited to 'include/asterisk/dns_naptr.h') diff --git a/include/asterisk/dns_naptr.h b/include/asterisk/dns_naptr.h new file mode 100644 index 000000000..5d7541aa5 --- /dev/null +++ b/include/asterisk/dns_naptr.h @@ -0,0 +1,89 @@ +/* + * Asterisk -- An open source telephony toolkit. + * + * Copyright (C) 2015, Digium, Inc. + * + * Joshua Colp + * + * See http://www.asterisk.org for more information about + * the Asterisk project. Please do not directly contact + * any of the maintainers of this project for assistance; + * the project provides a web site, mailing lists and IRC + * channels for your use. + * + * This program is free software, distributed under the terms of + * the GNU General Public License Version 2. See the LICENSE file + * at the top of the source tree. + */ + +/*! \file + * \brief DNS NAPTR Record Parsing API + * \author Joshua Colp + */ + +#ifndef _ASTERISK_DNS_NAPTR_H +#define _ASTERISK_DNS_NAPTR_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +/*! + * \brief Get the flags from a NAPTR record + * + * \param record The DNS record + * + * \return the flags + */ +const char *ast_dns_naptr_get_flags(const struct ast_dns_record *record); + +/*! + * \brief Get the service from a NAPTR record + * + * \param record The DNS record + * + * \return the service + */ +const char *ast_dns_naptr_get_service(const struct ast_dns_record *record); + +/*! + * \brief Get the regular expression from a NAPTR record + * + * \param record The DNS record + * + * \return the regular expression + */ +const char *ast_dns_naptr_get_regexp(const struct ast_dns_record *record); + +/*! + * \brief Get the replacement value from a NAPTR record + * + * \param record The DNS record + * + * \return the replacement value + */ +const char *ast_dns_naptr_get_replacement(const struct ast_dns_record *record); + +/*! + * \brief Get the order from a NAPTR record + * + * \param record The DNS record + * + * \return the order + */ +unsigned short ast_dns_naptr_get_order(const struct ast_dns_record *record); + +/*! + * \brief Get the preference from a NAPTR record + * + * \param record The DNS record + * + * \return the preference + */ +unsigned short ast_dns_naptr_get_preference(const struct ast_dns_record *record); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif /* _ASTERISK_DNS_NAPTR_H */ -- cgit v1.2.3