Index: channels/chan_iax2.c =================================================================== RCS file: /usr/cvsroot/asterisk/channels/chan_iax2.c,v retrieving revision 1.236 diff -u -p -r1.236 chan_iax2.c --- channels/chan_iax2.c 12 Jan 2005 17:28:26 -0000 1.236 +++ channels/chan_iax2.c 14 Jan 2005 15:51:30 -0000 @@ -653,13 +653,11 @@ static int uncompress_subclass(unsigned static struct iax2_peer *find_peer(const char *name) { struct iax2_peer *peer; - struct iax2_peer *prev; ast_mutex_lock(&peerl.lock); for(peer = peerl.peers; peer; peer = peer->next) { if (!strcasecmp(peer->name, name)) { break; } - prev = peer; } ast_mutex_unlock(&peerl.lock); if(!peer) @@ -2236,17 +2234,7 @@ static int create_addr(struct sockaddr_i if (sockfd) *sockfd = defaultsockfd; sin->sin_family = AF_INET; - ast_mutex_lock(&peerl.lock); - p = peerl.peers; - while(p) { - if (!strcasecmp(p->name, peer)) { - break; - } - p = p->next; - } - ast_mutex_unlock(&peerl.lock); - if (!p) - p = realtime_peer(peer); + p = find_peer(peer); if (p) { found++; if ((p->addr.sin_addr.s_addr || p->defaddr.sin_addr.s_addr) && @@ -4302,14 +4290,8 @@ static int register_verify(int callno, s /* We release the lock for the call to prevent a deadlock, but it's okay because only the current thread could possibly make it go away or make changes */ ast_mutex_unlock(&iaxsl[callno]); - ast_mutex_lock(&peerl.lock); - for (p = peerl.peers; p ; p = p->next) - if (!strcasecmp(p->name, peer)) - break; - ast_mutex_unlock(&peerl.lock); + p = find_peer(peer); ast_mutex_lock(&iaxsl[callno]); - if (!p) - p = realtime_peer(peer); if (!p) { if (authdebug) @@ -4868,13 +4850,7 @@ static int update_registry(char *name, s char iabuf[INET_ADDRSTRLEN]; int version; memset(&ied, 0, sizeof(ied)); - for (p = peerl.peers;p;p = p->next) { - if (!strcasecmp(name, p->name)) { - break; - } - } - if (!p) - p = realtime_peer(name); + p = find_peer(name); if (p) { if (ast_test_flag(p, IAX_TEMPONLY)) realtime_update(name, sin); @@ -4950,15 +4926,7 @@ static int registry_authrequest(char *na { struct iax_ie_data ied; struct iax2_peer *p; - ast_mutex_lock(&peerl.lock); - for (p = peerl.peers;p;p = p->next) { - if (!strcasecmp(name, p->name)) { - break; - } - } - ast_mutex_unlock(&peerl.lock); - if (!p) - p = realtime_peer(name); + p = find_peer(name); if (p) { memset(&ied, 0, sizeof(ied)); iax_ie_append_short(&ied, IAX_IE_AUTHMETHODS, p->authmethods);