Ctrl+C added to union dump

This commit is contained in:
Miroslav Stampar 2011-01-06 09:48:04 +00:00
parent 0616edcc44
commit c968b438f2

View File

@ -172,31 +172,39 @@ def unionUse(expression, direct=False, unescape=True, resetCounter=False, nullCh
return return
for num in xrange(startLimit, stopLimit): try:
if kb.dbms in (DBMS.MSSQL, DBMS.SYBASE): for num in xrange(startLimit, stopLimit):
field = expressionFieldsList[0] if kb.dbms in (DBMS.MSSQL, DBMS.SYBASE):
elif kb.dbms == DBMS.ORACLE: field = expressionFieldsList[0]
field = expressionFieldsList elif kb.dbms == DBMS.ORACLE:
else: field = expressionFieldsList
field = None else:
field = None
limitedExpr = agent.limitQuery(num, expression, field) limitedExpr = agent.limitQuery(num, expression, field)
output = resume(limitedExpr, None) output = resume(limitedExpr, None)
if not output: if not output:
output = unionUse(limitedExpr, direct=True, unescape=False) output = unionUse(limitedExpr, direct=True, unescape=False)
if output: if output:
value += output value += output
parseUnionPage(output, limitedExpr) parseUnionPage(output, limitedExpr)
if conf.verbose in (1, 2): if conf.verbose in (1, 2):
length = stopLimit - startLimit length = stopLimit - startLimit
count = num - startLimit + 1 count = num - startLimit + 1
status = '%d/%d entries (%d%s)' % (count, length, round(100.0*count/length), '%') status = '%d/%d entries (%d%s)' % (count, length, round(100.0*count/length), '%')
dataToStdout("\r[%s] [INFO] retrieved: %s" % (time.strftime("%X"), status), True) dataToStdout("\r[%s] [INFO] retrieved: %s" % (time.strftime("%X"), status), True)
except KeyboardInterrupt:
print
warnMsg = "Ctrl+C detected in dumping phase"
logger.warn(warnMsg)
finally:
clearConsoleLine(True)
clearConsoleLine(True)
return value return value
value = unionUse(expression, direct=True, unescape=False) value = unionUse(expression, direct=True, unescape=False)