diff --git a/modules/data/webadmin/tmpl/add_edit_network.tmpl b/modules/data/webadmin/tmpl/add_edit_network.tmpl index c53cffc3..4fc3bb39 100644 --- a/modules/data/webadmin/tmpl/add_edit_network.tmpl +++ b/modules/data/webadmin/tmpl/add_edit_network.tmpl @@ -136,7 +136,7 @@
-
+
Server encoding:
diff --git a/modules/data/webadmin/tmpl/add_edit_user.tmpl b/modules/data/webadmin/tmpl/add_edit_user.tmpl index 335530e7..3b347169 100644 --- a/modules/data/webadmin/tmpl/add_edit_user.tmpl +++ b/modules/data/webadmin/tmpl/add_edit_user.tmpl @@ -289,7 +289,7 @@
-
+
Client encoding:
diff --git a/src/IRCNetwork.cpp b/src/IRCNetwork.cpp index 9d202e4b..f7579fd9 100644 --- a/src/IRCNetwork.cpp +++ b/src/IRCNetwork.cpp @@ -1454,7 +1454,12 @@ void CIRCNetwork::SetBindHost(const CString& s) { } } -void CIRCNetwork::SetEncoding(const CString& s) { m_sEncoding = s; } +void CIRCNetwork::SetEncoding(const CString& s) { + m_sEncoding = s; + if (GetIRCSock()) { + GetIRCSock()->SetEncoding(s); + } +} void CIRCNetwork::SetQuitMsg(const CString& s) { if (m_pUser->GetQuitMsg().Equals(s)) { diff --git a/src/User.cpp b/src/User.cpp index 812ff79b..23ea9758 100644 --- a/src/User.cpp +++ b/src/User.cpp @@ -1330,7 +1330,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) {