minor refactoring

This commit is contained in:
Miroslav Stampar 2011-04-10 07:16:19 +00:00
parent c714ac6421
commit 723a7447b2
3 changed files with 21 additions and 20 deletions

View File

@ -2510,21 +2510,3 @@ def isBinaryData(value):
if isinstance(value, basestring):
retVal = reduce(lambda x, y: x or not (y in string.printable or ord(y) > 255), value, False)
return retVal
def getSafeHexEncodedBinaryData(value):
"""
Returns safe representation of given basestring value
>>> getSafeEncodedBinaryData(u'test123')
u'test123'
>>> getSafeEncodedBinaryData(u'test\01\02\03')
u'test\\1\\2\\3'
"""
retVal = value
if isinstance(value, basestring):
retVal = reduce(lambda x, y: x + (y if (y in string.printable or ord(y) > 255) else '\%x' % ord(y)), value, unicode())
elif isinstance(value, list):
for i in xrange(len(value)):
retVal[i] = getSafeHexEncodedBinaryData(value[i])
return retVal

View File

@ -15,6 +15,7 @@ except:
import pickle
import sys
import string
import struct
import urllib
@ -126,3 +127,21 @@ def htmlescape(value):
def htmlunescape(value):
return value.replace('&amp;', '&').replace('&lt;', '<').replace('&gt;', '>').replace('&quot;', '"').replace('&#39;', "'").replace('&nbsp;', ' ')
def safehexencode(value):
"""
Returns safe hex representation of a given basestring value
>>> safehexencode(u'test123')
u'test123'
>>> safehexencode(u'test\x01\x02\xff')
u'test\\01\\02\\03\\ff'
"""
retVal = value
if isinstance(value, basestring):
retVal = reduce(lambda x, y: x + (y if (y in string.printable or ord(y) > 255) else '\%02x' % ord(y)), value, unicode())
elif isinstance(value, list):
for i in xrange(len(value)):
retVal[i] = safehexencode(value[i])
return retVal

View File

@ -17,7 +17,6 @@ from lib.core.common import cleanQuery
from lib.core.common import dataToSessionFile
from lib.core.common import expandAsteriskForColumns
from lib.core.common import getPublicTypeMembers
from lib.core.common import getSafeHexEncodedBinaryData
from lib.core.common import initTechnique
from lib.core.common import isNumPosStrValue
from lib.core.common import isTechniqueAvailable
@ -28,6 +27,7 @@ from lib.core.common import randomInt
from lib.core.common import readInput
from lib.core.common import replaceNewlineTabs
from lib.core.common import safeStringFormat
from lib.core.convert import safehexencode
from lib.core.data import conf
from lib.core.data import kb
from lib.core.data import logger
@ -495,7 +495,7 @@ def getValue(expression, blind=True, inband=True, error=True, time=True, fromUse
value = None
if safeHexEncode:
value = getSafeHexEncodedBinaryData(value)
value = safehexencode(value)
return value