aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_iax2.c
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-04-06 21:12:32 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-04-06 21:12:32 +0000
commit382175ba279d995ad1a723621682ad1a7711c424 (patch)
tree1d3f457b8cb083d53a2df9c125360571ea9dd442 /channels/chan_iax2.c
parente98507dd4f5dd23299abedea55e69221cc454760 (diff)
*** empty log message ***
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@5431 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_iax2.c')
-rwxr-xr-xchannels/chan_iax2.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 2c66eccc2..40dbdb842 100755
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -37,6 +37,7 @@
#include <asterisk/causes.h>
#include <asterisk/localtime.h>
#include <asterisk/aes.h>
+#include <asterisk/dnsmgr.h>
#include <sys/mman.h>
#include <arpa/inet.h>
#include <dirent.h>
@@ -265,6 +266,7 @@ struct iax2_peer {
char peercontext[AST_MAX_EXTENSION]; /* Context to pass to peer */
char mailbox[AST_MAX_EXTENSION]; /* Mailbox */
struct ast_codec_pref prefs;
+ struct ast_dnsmgr_entry *dnsmgr; /* DNS refresh manager */
struct sockaddr_in addr;
int formats;
int sockfd; /* Socket to use for transmission */
@@ -7872,8 +7874,8 @@ static struct iax2_peer *build_peer(const char *name, struct ast_variable *v, in
if (peer->expire > -1)
ast_sched_del(sched, peer->expire);
peer->expire = -1;
- ast_clear_flag(peer, IAX_DYNAMIC);
- if (ast_get_ip(&peer->addr, v->value)) {
+ ast_clear_flag(peer, IAX_DYNAMIC);
+ if (ast_dnsmgr_lookup(v->value, &peer->addr.sin_addr, &peer->dnsmgr)) {
free(peer);
return NULL;
}
@@ -8193,6 +8195,8 @@ static void destroy_peer(struct iax2_peer *peer)
if (peer->callno > 0)
iax2_destroy(peer->callno);
register_peer_exten(peer, 0);
+ if (peer->dnsmgr)
+ ast_dnsmgr_release(peer->dnsmgr);
free(peer);
}