Hold call structure longer iwth find_callno
authorMark Spencer <markster@digium.com>
Mon, 26 Apr 2004 11:38:21 +0000 (11:38 +0000)
committerMark Spencer <markster@digium.com>
Mon, 26 Apr 2004 11:38:21 +0000 (11:38 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@2771 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_iax2.c

index 624d9ef..30ebb5e 100755 (executable)
@@ -814,7 +814,6 @@ static int find_callno(unsigned short callno, unsigned short dcallno, struct soc
                        return -1;
                }
                iaxs[x] = new_iax(sin, lockpeer);
-               ast_mutex_unlock(&iaxsl[x]);
                update_max_nontrunk();
                if (iaxs[x]) {
                        if (option_debug)
@@ -833,8 +832,10 @@ static int find_callno(unsigned short callno, unsigned short dcallno, struct soc
                        strncpy(iaxs[x]->accountcode, accountcode, sizeof(iaxs[x]->accountcode)-1);
                } else {
                        ast_log(LOG_WARNING, "Out of resources\n");
+                       ast_mutex_unlock(&iaxsl[x]);
                        return 0;
                }
+               ast_mutex_unlock(&iaxsl[x]);
                res = x;
        }
        return res;