diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 72d95e2f57..61c55fa76b 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -11199,7 +11199,7 @@ static int sipsock_read(int *id, int fd, short events, void *ignore) int nounlock; int recount = 0; char iabuf[INET_ADDRSTRLEN]; - int lockretrycount = 0; + unsigned int lockretry = 100; len = sizeof(sin); memset(&req, 0, sizeof(req)); @@ -11252,13 +11252,12 @@ retrylock: ast_log(LOG_DEBUG, "Failed to grab lock, trying again...\n"); ast_mutex_unlock(&p->lock); ast_mutex_unlock(&netlock); - /* Sleep infintismly short amount of time */ + /* Sleep for a very short amount of time */ usleep(1); - lockretrycount++; - if (lockretrycount < 100) + if (--lockretry) goto retrylock; } - if (lockretrycount > 100) { + if (!lockretry) { ast_log(LOG_ERROR, "We could NOT get the channel lock for %s! \n", p->owner->name); ast_log(LOG_ERROR, "SIP MESSAGE JUST IGNORED: %s \n", req.data); ast_log(LOG_ERROR, "BAD! BAD! BAD!\n");