From aeb07172b09fc6e38e115a9bd358b1508a516c87 Mon Sep 17 00:00:00 2001 From: Moises Silva Date: Thu, 25 Oct 2012 02:01:05 -0400 Subject: [PATCH] freetdm: ftmod_pritap - Do not print an error when the crv is no longer in use since this is a valid code path --- .../src/ftmod/ftmod_pritap/ftmod_pritap.c | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/libs/freetdm/src/ftmod/ftmod_pritap/ftmod_pritap.c b/libs/freetdm/src/ftmod/ftmod_pritap/ftmod_pritap.c index 902f3666b6..7e4bf314a7 100644 --- a/libs/freetdm/src/ftmod/ftmod_pritap/ftmod_pritap.c +++ b/libs/freetdm/src/ftmod/ftmod_pritap/ftmod_pritap.c @@ -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);