diff --git a/Control/RadioResource.cpp b/Control/RadioResource.cpp index f5b9058..60a1edc 100644 --- a/Control/RadioResource.cpp +++ b/Control/RadioResource.cpp @@ -302,6 +302,7 @@ void Control::PagingResponseHandler(const L3PagingResponse* resp, LogicalChannel DCCH->send(L3ChannelRelease(0x41)); return; } + LOG(INFO) << "paging reponse for transaction " << *transaction; // Set the transaction channel. transaction->channel(DCCH); // We are looking for a mobile-terminated transaction. @@ -419,7 +420,9 @@ unsigned Pager::pageAll() // Clear expired entries. PagingEntryList::iterator lp = mPageIDs.begin(); while (lp != mPageIDs.end()) { - if (!lp->expired()) ++lp; + bool expired = lp->expired(); + bool defunct = gTransactionTable.find(lp->transactionID()) == NULL; + if (!expired && !defunct) ++lp; else { LOG(INFO) << "erasing " << lp->ID(); // Non-responsive, dead transaction?