Add test for #1229 and actually fix it.

This commit is contained in:
Alexey Sokolov
2016-01-09 18:00:47 +00:00
parent 6a87ba3d4f
commit 1f226d2ade
7 changed files with 31 additions and 15 deletions
+1 -1
View File
@@ -384,7 +384,7 @@ void CClient::AcceptLogin(CUser& User) {
SetTimeout(CIRCNetwork::NO_TRAFFIC_TIMEOUT, TMO_READ);
SetSockName("USR::" + m_pUser->GetUserName());
SetEncoding(CZNC::Get().FixupEncoding(m_pUser->GetClientEncoding()));
SetEncoding(m_pUser->GetClientEncoding());
if (!m_sNetwork.empty()) {
m_pNetwork = m_pUser->FindNetwork(m_sNetwork);
+1 -1
View File
@@ -91,7 +91,7 @@ CIRCSock::CIRCSock(CIRCNetwork* pNetwork)
EnableReadLine();
m_Nick.SetIdent(m_pNetwork->GetIdent());
m_Nick.SetHost(m_pNetwork->GetBindHost());
SetEncoding(CZNC::Get().FixupEncoding((m_pNetwork->GetEncoding())));
SetEncoding(m_pNetwork->GetEncoding());
m_mueChanModes['b'] = ListArg;
m_mueChanModes['e'] = ListArg;
+6
View File
@@ -176,6 +176,12 @@ CString CZNCSock::GetSSLPeerFingerprint() const {
#endif
}
void CZNCSock::SetEncoding(const CString& sEncoding) {
#ifdef HAVE_ICU
Csock::SetEncoding(CZNC::Get().FixupEncoding(sEncoding));
#endif
}
#ifdef HAVE_PTHREAD
class CSockManager::CThreadMonitorFD : public CSMonitorFD {
public:
+8 -1
View File
@@ -2072,7 +2072,14 @@ void CZNC::ResumeConnectQueue() {
}
}
void CZNC::ForceEncoding() { m_uiForceEncoding++; }
void CZNC::ForceEncoding() {
m_uiForceEncoding++;
for (Csock* pSock : GetManager()) {
if (pSock->GetEncoding().empty()) {
pSock->SetEncoding("UTF-8");
}
}
}
void CZNC::UnforceEncoding() { m_uiForceEncoding--; }
bool CZNC::IsForcingEncoding() const { return m_uiForceEncoding; }
CString CZNC::FixupEncoding(const CString& sEncoding) const {