Set debug enabler in SDP media.

Lowered debug level for media debug messages.
This commit is contained in:
marian 2023-05-26 15:28:49 +03:00
parent a590b6083f
commit c45f3a0345
3 changed files with 33 additions and 8 deletions

View File

@ -40,7 +40,8 @@ SDPMedia::SDPMedia(const char* media, const char* transport, const char* formats
m_audio(true), m_video(false), m_modified(false), m_securable(true), m_haveRfc3833(false),
m_localChanged(false),
m_transport(transport), m_formats(formats),
m_lDir(0), m_rDir(0)
m_lDir(0), m_rDir(0),
m_enabler(0), m_ptr(0)
{
DDebug(DebugAll,"SDPMedia::SDPMedia('%s','%s','%s',%d,%d) [%p]",
media,transport,formats,rport,lport,this);
@ -133,8 +134,8 @@ bool SDPMedia::update(const char* formats, int rport, int lport, bool force)
if (tmp.find(',') < 0) {
// single format received, check if acceptable
if (m_formats && !force && m_formats.find(tmp) < 0) {
Debug(DebugNote,"Not changing to '%s' from '%s' [%p]",
formats,m_formats.c_str(),this);
TraceDebug(m_traceId,m_enabler,DebugInfo,"Not changing to '%s' from '%s' [%p]",
formats,m_formats.c_str(),m_ptr);
tmp.clear();
}
}
@ -155,15 +156,16 @@ bool SDPMedia::update(const char* formats, int rport, int lport, bool force)
TelEngine::destruct(l1);
TelEngine::destruct(l2);
if (tmp.null())
Debug(DebugNote,"Not changing formats '%s' [%p]",m_formats.c_str(),this);
TraceDebug(m_traceId,m_enabler,DebugInfo,"Not changing formats '%s' [%p]",
m_formats.c_str(),m_ptr);
}
if (tmp && (m_formats != tmp)) {
chg = true;
m_formats = tmp;
int q = m_formats.find(',');
m_format = m_formats.substr(0,q);
Debug(DebugInfo,"Choosing offered '%s' format '%s' [%p]",
c_str(),m_format.c_str(),this);
TraceDebug(m_traceId,m_enabler,DebugAll,"Choosing offered '%s' format '%s' [%p]",
c_str(),m_format.c_str(),m_ptr);
}
}
if (rport >= 0) {
@ -196,8 +198,8 @@ void SDPMedia::update(const NamedList& msg, bool pickFormat)
if (format) {
m_format = format;
if ((m_formats != m_format) && (msg.getIntValue("remoteport") > 0)) {
Debug(DebugNote,"Choosing started '%s' format '%s' [%p]",
c_str(),format,this);
TraceDebug(m_traceId,m_enabler,DebugAll,"Choosing started '%s' format '%s' [%p]",
c_str(),format,m_ptr);
m_formats = m_format;
}
}
@ -329,6 +331,15 @@ int SDPMedia::payloadMapping(const String& mappings, const String& fmt)
return payload;
}
// Set data used in debug
void SDPMedia::setSdpDebug(DebugEnabler* enabler, void* ptr, const String* traceId)
{
m_enabler = enabler;
m_ptr = (m_enabler && ptr) ? ptr : (void*)this;
if (traceId)
m_traceId = *traceId;
}
}; // namespace TelEngine
/* vi: set ts=8 sw=4 sts=4 noet: */

View File

@ -68,6 +68,8 @@ bool SDPSession::setMedia(ObjList* media, bool preserveExisting)
DDebug(m_enabler,DebugAll,"SDPSession::setMedia(%p) [%p]",media,m_ptr);
ObjList* tmp = m_rtpMedia;
m_rtpMedia = media;
for (ObjList* o = m_rtpMedia ? m_rtpMedia->skipNull() : 0; o; o = o->skipNext())
static_cast<SDPMedia*>(o->get())->setSdpDebug(m_enabler,m_ptr,&m_traceId);
bool chg = m_rtpMedia != 0;
if (tmp) {
chg = false;
@ -756,6 +758,7 @@ void SDPSession::updateFormats(const NamedList& msg, bool changeMedia)
p->c_str(),tmp.c_str(),m_ptr);
if (trans) {
rtp = new SDPMedia(tmp,trans,p->c_str());
rtp->setSdpDebug(m_enabler,m_ptr,&m_traceId);
m_rtpMedia->append(rtp);
mediaChanged(*rtp);
}

View File

@ -468,6 +468,14 @@ public:
*/
void keepRtp(const SDPMedia& other);
/**
* Set data used in debug
* @param enabler The DebugEnabler to use (0 to to use the parser)
* @param ptr Pointer to print, 0 to use the media pointer
* @param traceId Trace ID to use for debugging
*/
void setSdpDebug(DebugEnabler* enabler = 0, void* ptr = 0, const String* traceId = 0);
/**
* Retrieve direction if known
* @param dir Destination variable to set the direction in
@ -525,6 +533,9 @@ private:
// Local / remote media direction
int m_lDir;
int m_rDir;
DebugEnabler* m_enabler; // Debug enabler used for output
void* m_ptr; // Pointer to show in debug messages
String m_traceId;
};