]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
freetdm: ftmod_pritap - Do not print an error when the crv is no longer in use
authorMoises Silva <moy@sangoma.com>
Thu, 25 Oct 2012 06:01:05 +0000 (02:01 -0400)
committerMoises Silva <moy@sangoma.com>
Mon, 29 Oct 2012 19:33:50 +0000 (15:33 -0400)
                        since this is a valid code path

libs/freetdm/src/ftmod/ftmod_pritap/ftmod_pritap.c

index 902f3666b6a6974481c98b783742425cd2feacc9..7e4bf314a7b9fe9f4c355c3b7f42223b09652ce0 100644 (file)
@@ -437,18 +437,18 @@ static passive_call_t *tap_pri_get_pcall_bycrv(pritap_t *pritap, int crv)
        for (i = 0; i < ftdm_array_len(pritap->pcalls); i++) {
                tstcrv = pritap->pcalls[i].callref ? tap_pri_get_crv(pritap->pri, pritap->pcalls[i].callref) : 0;
                if (pritap->pcalls[i].callref && tstcrv == crv) {
-                       if (!pritap->pcalls[i].inuse) {
-                               ftdm_log(FTDM_LOG_ERROR, "Found crv %d in slot %d of span %s with call %p but is no longer in use!\n", 
-                                               crv, i, pritap->span->name, pritap->pcalls[i].callref);
-                               continue;
+                       if (pritap->pcalls[i].inuse) {
+                               ftdm_mutex_unlock(pritap->pcalls_lock);
+                               return &pritap->pcalls[i];
                        }
-
-                       ftdm_mutex_unlock(pritap->pcalls_lock);
-
-                       return &pritap->pcalls[i];
+                       /* This just means the crv is being re-used in another call before this one was destroyed */
+                       ftdm_log(FTDM_LOG_DEBUG, "Found crv %d in slot %d of span %s with call %p but is no longer in use\n",
+                                       crv, i, pritap->span->name, pritap->pcalls[i].callref);
                }
        }
 
+       ftdm_log(FTDM_LOG_DEBUG, "crv %d was not found active in span %s\n", crv, pritap->span->name);
+
        ftdm_mutex_unlock(pritap->pcalls_lock);
 
        return NULL;
@@ -471,7 +471,10 @@ static passive_call_t *tap_pri_get_pcall(pritap_t *pritap, void *callref)
                        memset(&pritap->pcalls[i], 0, sizeof(pritap->pcalls[0]));
                }
                if (callref == pritap->pcalls[i].callref) {
-                       pritap->pcalls[i].inuse = 1;
+                       if (callref == NULL) {
+                               pritap->pcalls[i].inuse = 1;
+                               ftdm_log(FTDM_LOG_DEBUG, "Enabling callref slot %d in span %s\n", i, pritap->span->name);
+                       }
 
                        ftdm_mutex_unlock(pritap->pcalls_lock);