diff --git a/User.cpp b/User.cpp index 9093d02b..ebda3dbe 100644 --- a/User.cpp +++ b/User.cpp @@ -190,6 +190,16 @@ CZNC* CUser::GetZNC() { CUserSock* CUser::GetUserSock() { // Todo: optimize this by saving a pointer to the sock + TSocketManager& Manager = m_pZNC->GetManager(); + + for (unsigned int a = 0; a < Manager.size(); a++) { + Csock* pSock = Manager[a]; + if (strncasecmp(pSock->GetSockName().c_str(), "USR::", 5) == 0) { + if (!pSock->isClosed()) { + return (CUserSock*) pSock; + } + } + } return (CUserSock*) m_pZNC->GetManager().FindSockByName("USR::" + m_sUserName); }