Look at all the dead dialogs and delete any that can be deleted safely. They can be deleted if their SIP timers have expired and no TranEntry still points to them.
| 265 | // Look at all the dead dialogs and delete any that can be deleted safely. |
| 266 | // They can be deleted if their SIP timers have expired and no TranEntry still points to them. |
| 267 | void SipInterface::purgeDeadDialogs() |
| 268 | { |
| 269 | #if USE_SCOPED_ITERATORS |
| 270 | DeadDialogListType::ScopedIterator sit(mDeadDialogs); |
| 271 | #else |
| 272 | ScopedLock lock(mDeadDialogs.getLock()); |
| 273 | DeadDialogListType::iterator sit; |
| 274 | #endif |
| 275 | for (sit = mDeadDialogs.begin(); sit != mDeadDialogs.end();) { |
| 276 | SipDialog *dialog = *sit; |
| 277 | LOG(DEBUG) << "purgeDeadDialogs"<<LOGVAR2("deletable",dialog->dgIsDeletable()); |
| 278 | if (dialog->dgIsDeletable()) { |
| 279 | sit = mDeadDialogs.erase(sit); |
| 280 | delete dialog; |
| 281 | } else { |
| 282 | sit++; |
| 283 | } |
| 284 | } |
| 285 | } |
| 286 | |
| 287 | SipBase *SipDialogMap::dmFindDialogByRtp(RtpSession *session) |
| 288 | { |
no test coverage detected