Stopped spamming of debug messages during attended transfer.

While autoservice is running and servicing a channel the callid is being stored
and removed in the thread's local storage for each iteration of the thread loop.
If debug was set to a sufficient level the log file would be spammed with callid
thread local storage debug messages.

Added a new function that checks to see if the callid to be stored is different
than what is already contained (if anything).  If it is different then
store/replace and log, otherwise just leave as is.  Also made it so all logging
of debug messages pertaining to the callid thread storage outputs only when
TEST_FRAMEWORK is defined.

(issue ASTERISK-21014)
(closes issue ASTERISK-21014)
Report by: Rusty Newton
Review: https://reviewboard.asterisk.org/r/2324/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@381557 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Kevin Harwell
2013-02-15 17:38:22 +00:00
parent f008baddac
commit 71bce17720
3 changed files with 52 additions and 8 deletions

View File

@@ -280,6 +280,15 @@ struct ast_callid *ast_read_threadstorage_callid(void);
*/
#define ast_callid_unref(c) ({ ao2_ref(c, -1); (NULL); })
/*!
* \brief Sets what is stored in the thread storage to the given
* callid if it does not match what is already there.
*
* \retval 0 - success
* \retval non-zero - failure
*/
int ast_callid_threadassoc_change(struct ast_callid *callid);
/*!
* \brief Adds a known callid to thread storage of the calling thread
*