|
Lines 32-43
Link Here
|
| 32 |
|
32 |
|
| 33 |
__package__ = '' # workaround for PEP 366 |
33 |
__package__ = '' # workaround for PEP 366 |
| 34 |
import listener |
34 |
import listener |
| 35 |
import string |
|
|
| 36 |
import time |
35 |
import time |
| 37 |
import syslog |
36 |
import syslog |
| 38 |
import re |
37 |
import re |
| 39 |
from hashlib import md5 as digest |
38 |
from hashlib import md5 as digest |
| 40 |
import base64 |
|
|
| 41 |
import grp |
39 |
import grp |
| 42 |
import subprocess |
40 |
import subprocess |
| 43 |
import os |
41 |
import os |
|
Lines 68-89
gidNumber = 0 # fallback
Link Here
|
| 68 |
filemode = '0640' |
66 |
filemode = '0640' |
| 69 |
cleanupDellog = True # remove missed dellog entries (after reporting about them) |
67 |
cleanupDellog = True # remove missed dellog entries (after reporting about them) |
| 70 |
|
68 |
|
| 71 |
|
69 |
SAFE_STRING_PATTERN = '(^(\000|\n|\r| |:|<)|[\000\n\r\200-\377]+|[ ]+$)' |
| 72 |
def needsConversion(char): |
70 |
safe_string_re = re.compile(SAFE_STRING_PATTERN) |
| 73 |
return char > '\x7f' |
|
|
| 74 |
|
| 75 |
|
| 76 |
def base64Filter(str): |
| 77 |
if [char for char in str if needsConversion(char)]: |
| 78 |
str = string.rstrip(base64.encodestring(str)) |
| 79 |
return str |
| 80 |
|
71 |
|
| 81 |
|
72 |
|
| 82 |
def ldapEntry2string(entry): |
73 |
def ldapEntry2string(entry): |
| 83 |
str = '' |
74 |
return ''.join( |
| 84 |
for (key, valuelist) in entry.iteritems(): |
75 |
'%s:: %s\n' % (key, value.encode('base64')) |
| 85 |
str += ''.join(['%s: %s\n' % (key, base64Filter(value)) for value in valuelist]) |
76 |
if safe_string_re.search(value) else |
| 86 |
return str |
77 |
'%s: %s\n' % (key, value) |
|
|
78 |
for key, values in entry.iteritems() |
| 79 |
for value in values |
| 80 |
) |
| 87 |
|
81 |
|
| 88 |
|
82 |
|
| 89 |
def ldapTime2string(timestamp): |
83 |
def ldapTime2string(timestamp): |
| 90 |
- |
|
|