]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
emit a warning if the old IAX2 call searching code finds a call when the new code...
authorKevin P. Fleming <kpfleming@digium.com>
Mon, 23 Jun 2008 21:22:08 +0000 (21:22 +0000)
committerKevin P. Fleming <kpfleming@digium.com>
Mon, 23 Jun 2008 21:22:08 +0000 (21:22 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@124743 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_iax2.c

index 274d47deb80605f351ea9f9d50abdc9e24c4319c..c90ca1341d23ff84f7ec1aaa80ad927dfa053a5c 100644 (file)
@@ -1556,7 +1556,17 @@ static int __find_callno(unsigned short callno, unsigned short dcallno, struct s
                        }
                }
 
-               /* Look for an existing connection first */
+               /* If we get here, we SHOULD NOT find a call structure for this
+                  callno; if we do, it means that there is a call structure that
+                  has a peer callno but did NOT get entered into the hash table,
+                  which is bad.
+
+                  If we find a call structure using this old, slow method, output a log
+                  message so we'll know about it. After a few months of leaving this in
+                  place, if we don't hear about people seeing these messages, we can
+                  remove this code for good.
+               */
+
                for (x = 1; !res && x < maxnontrunkcall; x++) {
                        ast_mutex_lock(&iaxsl[x]);
                        if (iaxs[x]) {
@@ -1568,6 +1578,7 @@ static int __find_callno(unsigned short callno, unsigned short dcallno, struct s
                        if (!res || !return_locked)
                                ast_mutex_unlock(&iaxsl[x]);
                }
+
                for (x = TRUNK_CALL_START; !res && x < maxtrunkcall; x++) {
                        ast_mutex_lock(&iaxsl[x]);
                        if (iaxs[x]) {
@@ -1579,6 +1590,10 @@ static int __find_callno(unsigned short callno, unsigned short dcallno, struct s
                        if (!res || !return_locked)
                                ast_mutex_unlock(&iaxsl[x]);
                }
+
+               if (res) {
+                       ast_log(LOG_WARNING, "Old call search code found call number %d that was not in hash table!\n", res);
+               }
        }
        if (!res && (new >= NEW_ALLOW)) {
                int start, found = 0;