aboutsummaryrefslogtreecommitdiffstats
path: root/src/msec/libmsec.py
diff options
context:
space:
mode:
authorEugeni Dodonov <eugeni@mandriva.org>2009-06-25 19:32:21 +0000
committerEugeni Dodonov <eugeni@mandriva.org>2009-06-25 19:32:21 +0000
commite0fb064bf52c9e18009573e900beb93b478fb2bb (patch)
tree648308120b9447f3794f385cd517ea7ced8e65ac /src/msec/libmsec.py
parent5f0f9cd16248a75d0a2e1fc52b8f8625fbbbff6a (diff)
downloadmsec-e0fb064bf52c9e18009573e900beb93b478fb2bb.tar
msec-e0fb064bf52c9e18009573e900beb93b478fb2bb.tar.gz
msec-e0fb064bf52c9e18009573e900beb93b478fb2bb.tar.bz2
msec-e0fb064bf52c9e18009573e900beb93b478fb2bb.tar.xz
msec-e0fb064bf52c9e18009573e900beb93b478fb2bb.zip
Correctly handling unicode messages (#50869).
Diffstat (limited to 'src/msec/libmsec.py')
-rwxr-xr-xsrc/msec/libmsec.py16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/msec/libmsec.py b/src/msec/libmsec.py
index d3f8d6e..4f520ae 100755
--- a/src/msec/libmsec.py
+++ b/src/msec/libmsec.py
@@ -56,8 +56,7 @@ import config
# localization
try:
- cat = gettext.Catalog('msec')
- _ = cat.gettext
+ gettext.install('msec')
except IOError:
_ = str
@@ -218,11 +217,20 @@ class Log:
self.logger.setLevel(log_level)
+ def trydecode(self, message):
+ """Attempts to decode a unicode message"""
+ try:
+ msg = message.decode('UTF-*')
+ except:
+ msg = message
+ return msg
+
def info(self, message):
"""Informative message (normal msec operation)"""
if self.quiet:
# skip informative messages in quiet mode
return
+ message = self.trydecode(message)
if self.buffer:
self.buffer["info"].append(message)
else:
@@ -230,6 +238,7 @@ class Log:
def error(self, message):
"""Error message (security has changed: authentication, passwords, etc)"""
+ message = self.trydecode(message)
if self.buffer:
self.buffer["error"].append(message)
else:
@@ -237,6 +246,7 @@ class Log:
def debug(self, message):
"""Debugging message"""
+ message = self.trydecode(message)
if self.buffer:
self.buffer["debug"].append(message)
else:
@@ -244,6 +254,7 @@ class Log:
def critical(self, message):
"""Critical message (big security risk, e.g., rootkit, etc)"""
+ message = self.trydecode(message)
if self.buffer:
self.buffer["critical"].append(message)
else:
@@ -254,6 +265,7 @@ class Log:
if self.quiet:
# skip warning messages in quiet mode
return
+ message = self.trydecode(message)
if self.buffer:
self.buffer["warn"].append(message)
else: