diff options
-rw-r--r-- | modules/m_sasl.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/modules/m_sasl.cpp b/modules/m_sasl.cpp index 3dff6c41f..cb7030bb4 100644 --- a/modules/m_sasl.cpp +++ b/modules/m_sasl.cpp @@ -150,7 +150,7 @@ class SASLService : public SASL::Service, public Timer } } - Session* &session = sessions[m.source]; + Session* session = GetSession(m.source); if (m.type == "S") { @@ -178,18 +178,22 @@ class SASLService : public SASL::Service, public Timer { session->hostname = hostname; session->ip = ip; + + sessions[m.source] = session; } } else if (m.type == "D") { delete session; - sessions.erase(m.source); return; } else if (m.type == "H") { if (!session) + { session = new Session(NULL, m.source); + sessions[m.source] = session; + } session->hostname = m.data; session->ip = m.ext; } |