From 15b7465cd22bb9e50750368567a4281d59c1d1b2 Mon Sep 17 00:00:00 2001 From: Luigi Rizzo <rizzo@icir.org> Date: Mon, 22 May 2006 00:17:46 +0000 Subject: [PATCH] simplify logic in function create_addr() git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@29265 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_sip.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 04768c49de..397aa2befa 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -2190,7 +2190,9 @@ static struct sip_user *find_user(const char *name, int realtime) return u; } -/*! \brief Create address structure from peer reference */ +/*! \brief Create address structure from peer reference. + * return -1 on error, 0 on success. + */ static int create_addr_from_peer(struct sip_pvt *r, struct sip_peer *peer) { int natflags; @@ -2283,7 +2285,6 @@ static int create_addr(struct sip_pvt *dialog, const char *opeer) struct hostent *hp; struct ast_hostent ahp; struct sip_peer *p; - int found=0; char *port; int portno; char host[MAXHOSTNAMELEN], *hostn; @@ -2298,14 +2299,10 @@ static int create_addr(struct sip_pvt *dialog, const char *opeer) p = find_peer(peer, NULL, 1); if (p) { - found++; - if (create_addr_from_peer(dialog, p)) - ASTOBJ_UNREF(p, sip_destroy_peer); - } - if (!p) { - if (found) - return -1; - + int res = create_addr_from_peer(dialog, p); + ASTOBJ_UNREF(p, sip_destroy_peer); + return res; + } else { hostn = peer; portno = port ? atoi(port) : DEFAULT_SIP_PORT; if (srvlookup) { @@ -2330,9 +2327,6 @@ static int create_addr(struct sip_pvt *dialog, const char *opeer) ast_log(LOG_WARNING, "No such host: %s\n", peer); return -1; } - } else { - ASTOBJ_UNREF(p, sip_destroy_peer); - return 0; } } -- GitLab