more general fix

This commit is contained in:
Miroslav Stampar 2012-02-24 10:53:28 +00:00
parent e8352e504f
commit 570d3a19c2
3 changed files with 7 additions and 7 deletions

View File

@ -732,6 +732,7 @@ def dataToStdout(data, forceOutput=False):
sys.stdout.write(data.encode(UNICODE_ENCODING))
finally:
sys.stdout.flush()
setFormatterPrependFlag(len(data) == 1)
if kb.get("multiThreadMode"):
logging._releaseLock()

View File

@ -394,18 +394,22 @@ def __setMultipleTargets():
infoMsg += "testable requests from the targets list"
logger.info(infoMsg)
def __adjustFormatter():
def __adjustLoggingFormatter():
"""
Solves problem of line deletition caused by overlapping logging messages
and retrieved data info in inference mode
"""
if hasattr(FORMATTER, '_format'):
return
def format(record):
_ = FORMATTER._format(record)
if FORMATTER._prepend_flag:
_ = "\n%s" % _
FORMATTER._prepend_flag = False
return _
FORMATTER._format = FORMATTER.format
FORMATTER._prepend_flag = False
FORMATTER.format = format
@ -1902,7 +1906,7 @@ def init(inputOptions=AttribDict(), overrideOptions=False):
__checkDependencies()
__basicOptionValidation()
__setTorProxySettings()
__adjustFormatter()
__adjustLoggingFormatter()
__setMultipleTargets()
__setTamperingFunctions()
__setTrafficOutputFP()

View File

@ -23,7 +23,6 @@ from lib.core.common import goGoodSamaritan
from lib.core.common import getPartRun
from lib.core.common import incrementCounter
from lib.core.common import safeStringFormat
from lib.core.common import setFormatterPrependFlag
from lib.core.common import singleTimeWarnMessage
from lib.core.data import conf
from lib.core.data import kb
@ -450,7 +449,6 @@ def bisection(payload, expression, length=None, charsetType=None, firstChar=None
etaProgressUpdate(time.time() - charStart, len(commonValue))
elif conf.verbose in (1, 2):
dataToStdout(commonValue[index-1:])
setFormatterPrependFlag(True)
finalValue = commonValue
@ -499,7 +497,6 @@ def bisection(payload, expression, length=None, charsetType=None, firstChar=None
etaProgressUpdate(time.time() - charStart, index)
elif conf.verbose in (1, 2):
dataToStdout(val)
setFormatterPrependFlag(True)
if len(partialValue) > INFERENCE_BLANK_BREAK and partialValue[-INFERENCE_BLANK_BREAK:].isspace():
finalValue = partialValue
@ -507,8 +504,6 @@ def bisection(payload, expression, length=None, charsetType=None, firstChar=None
except KeyboardInterrupt:
abortedFlag = True
finally:
setFormatterPrependFlag(False)
if conf.verbose in (1, 2) or showEta:
dataToStdout("\n")