From 5d014193b458b2a613cebace20f1429e7d0f5e0f Mon Sep 17 00:00:00 2001 From: Alexey Sokolov Date: Sat, 9 Jan 2016 18:18:44 +0000 Subject: [PATCH] Don't require reconnect after changing encoding. --- modules/data/webadmin/tmpl/add_edit_network.tmpl | 2 +- modules/data/webadmin/tmpl/add_edit_user.tmpl | 2 +- src/IRCNetwork.cpp | 3 +++ src/User.cpp | 7 ++++++- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/modules/data/webadmin/tmpl/add_edit_network.tmpl b/modules/data/webadmin/tmpl/add_edit_network.tmpl index 9d7eded8..597bf02f 100644 --- a/modules/data/webadmin/tmpl/add_edit_network.tmpl +++ b/modules/data/webadmin/tmpl/add_edit_network.tmpl @@ -124,7 +124,7 @@
-
+
Server encoding:
diff --git a/modules/data/webadmin/tmpl/add_edit_user.tmpl b/modules/data/webadmin/tmpl/add_edit_user.tmpl index a62bd6cd..b05bfcf7 100644 --- a/modules/data/webadmin/tmpl/add_edit_user.tmpl +++ b/modules/data/webadmin/tmpl/add_edit_user.tmpl @@ -283,7 +283,7 @@
-
+
Client encoding:
diff --git a/src/IRCNetwork.cpp b/src/IRCNetwork.cpp index 3d6221c0..7f6da53f 100644 --- a/src/IRCNetwork.cpp +++ b/src/IRCNetwork.cpp @@ -1392,6 +1392,9 @@ void CIRCNetwork::SetBindHost(const CString& s) { void CIRCNetwork::SetEncoding(const CString& s) { m_sEncoding = s; + if (GetIRCSock()) { + GetIRCSock()->SetEncoding(s); + } } void CIRCNetwork::SetQuitMsg(const CString& s) { diff --git a/src/User.cpp b/src/User.cpp index 64821d0b..f7b42272 100644 --- a/src/User.cpp +++ b/src/User.cpp @@ -1147,7 +1147,12 @@ void CUser::SetDenyLoadMod(bool b) { m_bDenyLoadMod = b; } void CUser::SetAdmin(bool b) { m_bAdmin = b; } void CUser::SetDenySetBindHost(bool b) { m_bDenySetBindHost = b; } void CUser::SetDefaultChanModes(const CString& s) { m_sDefaultChanModes = s; } -void CUser::SetClientEncoding(const CString& s) { m_sClientEncoding = s; } +void CUser::SetClientEncoding(const CString& s) { + m_sClientEncoding = s; + for (CClient* pClient : GetAllClients()) { + pClient->SetEncoding(s); + } +} void CUser::SetQuitMsg(const CString& s) { m_sQuitMsg = s; } void CUser::SetAutoClearChanBuffer(bool b) { for (CIRCNetwork* pNetwork : m_vIRCNetworks) {