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;
struct hostent *hp;
struct ast_hostent ahp;
struct sip_peer *p;
- int found=0;
char *port;
int portno;
char host[MAXHOSTNAMELEN], *hostn;
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) {
ast_log(LOG_WARNING, "No such host: %s\n", peer);
return -1;
}
- } else {
- ASTOBJ_UNREF(p, sip_destroy_peer);
- return 0;
}
}