mirror of
https://github.com/znc/znc.git
synced 2026-08-09 10:23:14 +02:00
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:
@@ -3,10 +3,15 @@
|
||||
<div>
|
||||
ZNC is compiled without encodings support. <a href="http://icu-project.org/">ICU</a> is required for it.
|
||||
</div>
|
||||
<? ENDIF ?>
|
||||
<? ELSE ?><?IF LegacyEncodingDisabled ?>
|
||||
<div>
|
||||
<!-- TODO don't hardcode modpython here -->
|
||||
Legacy mode is disabled by modpython.
|
||||
</div>
|
||||
<? ENDIF ?><? ENDIF ?>
|
||||
<div>
|
||||
<div class="checkboxandlabel checkbox">
|
||||
<input type="radio" name="encoding_utf" id="encoding_utf_legacy" value="legacy" <? IF EncodingUtf == "legacy" ?>checked="checked"<? ENDIF ?> <? IF EncodingDisabled ?>disabled="disabled"<? ENDIF ?> />
|
||||
<input type="radio" name="encoding_utf" id="encoding_utf_legacy" value="legacy" <? IF EncodingUtf == "legacy" ?>checked="checked"<? ENDIF ?> <? IF LegacyEncodingDisabled ?>disabled="disabled"<? ENDIF ?> />
|
||||
<label for="encoding_utf_legacy">Don't ensure any encoding at all (legacy mode, not recommended)</label>
|
||||
</div>
|
||||
<div class="checkboxandlabel checkbox">
|
||||
|
||||
@@ -82,6 +82,7 @@ class CModPython : public CModule {
|
||||
}
|
||||
|
||||
MODCONSTRUCTOR(CModPython) {
|
||||
CZNC::Get().ForceEncoding();
|
||||
Py_Initialize();
|
||||
m_PyFormatException = nullptr;
|
||||
m_PyZNCModule = nullptr;
|
||||
@@ -386,6 +387,7 @@ class CModPython : public CModule {
|
||||
Py_CLEAR(m_PyFormatException);
|
||||
Py_CLEAR(m_PyZNCModule);
|
||||
Py_Finalize();
|
||||
CZNC::Get().UnforceEncoding();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -1013,7 +1013,10 @@ class CWebAdminMod : public CModule {
|
||||
Tmpl["EncodingUtf"] = "simple";
|
||||
Tmpl["Encoding"] = sEncoding;
|
||||
}
|
||||
Tmpl["LegacyEncodingDisabled"] =
|
||||
CString(CZNC::Get().IsForcingEncoding());
|
||||
#else
|
||||
Tmpl["LegacyEncodingDisabled"] = "true";
|
||||
Tmpl["EncodingDisabled"] = "true";
|
||||
Tmpl["EncodingUtf"] = "legacy";
|
||||
#endif
|
||||
@@ -1353,7 +1356,10 @@ class CWebAdminMod : public CModule {
|
||||
Tmpl["EncodingUtf"] = "simple";
|
||||
Tmpl["Encoding"] = sEncoding;
|
||||
}
|
||||
Tmpl["LegacyEncodingDisabled"] =
|
||||
CString(CZNC::Get().IsForcingEncoding());
|
||||
#else
|
||||
Tmpl["LegacyEncodingDisabled"] = "true";
|
||||
Tmpl["EncodingDisabled"] = "true";
|
||||
Tmpl["EncodingUtf"] = "legacy";
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user