mirror of
https://github.com/znc/znc.git
synced 2026-08-04 07:53:39 +02:00
Respect AwaySuffix by starting timers in Clone()
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@569 726aef4b-f618-498e-8847-2d620e286838
This commit is contained in:
@@ -95,15 +95,7 @@ void CUser::UserConnected(CUserSock* pUserSock) {
|
||||
}
|
||||
|
||||
m_vUserSocks.push_back(pUserSock);
|
||||
CIRCSock* pIRCSock = GetIRCSock();
|
||||
|
||||
CString sConfNick = GetNick();
|
||||
if (pIRCSock) {
|
||||
if (pIRCSock->GetNick().CaseCmp(CNick::Concat(sConfNick, GetAwaySuffix(), pIRCSock->GetMaxNickLen())) == 0) {
|
||||
m_pBackNickTimer = new CBackNickTimer(this);
|
||||
CZNC::Get().GetManager().AddCron(m_pBackNickTimer);
|
||||
}
|
||||
}
|
||||
StartBackNickTimer();
|
||||
|
||||
if (m_RawBuffer.IsEmpty()) {
|
||||
pUserSock->PutServ(":irc.znc.com 001 " + pUserSock->GetNick() + " :- Welcome to ZNC -");
|
||||
@@ -148,6 +140,19 @@ void CUser::StartAwayNickTimer() {
|
||||
}
|
||||
}
|
||||
|
||||
void CUser::StartBackNickTimer() {
|
||||
CIRCSock* pIRCSock = GetIRCSock();
|
||||
|
||||
if (pIRCSock) {
|
||||
CString sConfNick = GetNick();
|
||||
|
||||
if (pIRCSock->GetNick().CaseCmp(CNick::Concat(sConfNick, GetAwaySuffix(), pIRCSock->GetMaxNickLen())) == 0) {
|
||||
m_pBackNickTimer = new CBackNickTimer(this);
|
||||
CZNC::Get().GetManager().AddCron(m_pBackNickTimer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CUser::DelAwayNickTimer() {
|
||||
m_pAwayNickTimer = NULL;
|
||||
}
|
||||
@@ -333,6 +338,14 @@ bool CUser::Clone(const CUser& User, CString& sErrorRet) {
|
||||
SetAdmin(User.IsAdmin());
|
||||
// !Flags
|
||||
|
||||
if (!IsUserAttached()) {
|
||||
if (GetAwaySuffix().empty()) {
|
||||
StartBackNickTimer();
|
||||
} else {
|
||||
StartAwayNickTimer();
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user