Disable legacy encoding mode when modpython is loaded.

Python is not happy when using non-unicode text as str.

Fix #1229
This commit is contained in:
Alexey Sokolov
2016-01-09 14:09:34 +00:00
parent 1e1fadbc2b
commit 4fe4a45dd6
8 changed files with 37 additions and 4 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(m_pUser->GetClientEncoding());
SetEncoding(CZNC::Get().FixupEncoding(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(m_pNetwork->GetEncoding());
SetEncoding(CZNC::Get().FixupEncoding((m_pNetwork->GetEncoding())));
m_mueChanModes['b'] = ListArg;
m_mueChanModes['e'] = ListArg;
+11
View File
@@ -72,6 +72,7 @@ CZNC::CZNC()
m_lpConnectQueue(),
m_pConnectQueueTimer(nullptr),
m_uiConnectPaused(0),
m_uiForceEncoding(0),
m_sConnectThrottle(),
m_bProtectWebSessions(true),
m_bHideVersion(false) {
@@ -2071,6 +2072,16 @@ void CZNC::ResumeConnectQueue() {
}
}
void CZNC::ForceEncoding() { m_uiForceEncoding++; }
void CZNC::UnforceEncoding() { m_uiForceEncoding--; }
bool CZNC::IsForcingEncoding() const { return m_uiForceEncoding; }
CString CZNC::FixupEncoding(const CString& sEncoding) const {
if (sEncoding.empty() && m_uiForceEncoding) {
return "UTF-8";
}
return sEncoding;
}
void CZNC::AddNetworkToQueue(CIRCNetwork* pNetwork) {
// Make sure we are not already in the queue
if (std::find(m_lpConnectQueue.begin(), m_lpConnectQueue.end(), pNetwork) !=