This adds DNS SRV record support to DNS manager. If there is a SRV record for a given domain, the hostname and port listed in the SRV record will be used. If no SRV record exists or a SRV lookup is not attempted, the DNS lookup on the specified domain will be performed as normal. Chan_sip has been modified to take advantage of the new SRV support.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@112207 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Jeff Peeler
2008-04-01 17:53:08 +00:00
parent a8be22f9da
commit a5cdd849e5
8 changed files with 90 additions and 79 deletions

View File

@@ -28,6 +28,7 @@ extern "C" {
#endif
#include "asterisk/network.h"
#include "asterisk/srv.h"
/*!
* \brief A DNS manager entry
@@ -50,7 +51,7 @@ struct ast_dnsmgr_entry;
*
* \return a DNS manager entry
*/
struct ast_dnsmgr_entry *ast_dnsmgr_get(const char *name, struct in_addr *result);
struct ast_dnsmgr_entry *ast_dnsmgr_get(const char *name, struct sockaddr_in *result, const char *service);
/*!
* \brief Free a DNS manager entry
@@ -75,7 +76,7 @@ void ast_dnsmgr_release(struct ast_dnsmgr_entry *entry);
* \retval 0 success
* \retval non-zero failure
*/
int ast_dnsmgr_lookup(const char *name, struct in_addr *result, struct ast_dnsmgr_entry **dnsmgr);
int ast_dnsmgr_lookup(const char *name, struct sockaddr_in *result, struct ast_dnsmgr_entry **dnsmgr, const char *service);
/*!
* \brief Force a refresh of a dnsmgr entry