aboutsummaryrefslogtreecommitdiffstats
path: root/src/gprs_ms.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gprs_ms.cpp')
-rw-r--r--src/gprs_ms.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/gprs_ms.cpp b/src/gprs_ms.cpp
index db29d206..d9d74f4d 100644
--- a/src/gprs_ms.cpp
+++ b/src/gprs_ms.cpp
@@ -67,6 +67,16 @@ GprsMs::GprsMs(uint32_t tlli) :
GprsMs::~GprsMs()
{
LOGP(DRLCMAC, LOGL_INFO, "Destroying MS object, TLLI = 0x%08x\n", tlli());
+
+ if (m_ul_tbf) {
+ m_ul_tbf->set_ms(NULL);
+ m_ul_tbf = NULL;
+ }
+
+ if (m_dl_tbf) {
+ m_dl_tbf->set_ms(NULL);
+ m_dl_tbf = NULL;
+ }
}
void* GprsMs::operator new(size_t size)
@@ -148,6 +158,9 @@ void GprsMs::detach_tbf(gprs_rlcmac_tbf *tbf)
LOGP(DRLCMAC, LOGL_INFO, "Detaching TBF from MS object, TLLI = 0x%08x, TBF = %s\n",
tlli(), tbf->name());
+ if (tbf->ms() == this)
+ tbf->set_ms(NULL);
+
update_status();
}