From 82272980572143ff9688db9a046c20347e88698d Mon Sep 17 00:00:00 2001 From: Miroslav Stampar Date: Fri, 27 May 2011 08:30:52 +0000 Subject: [PATCH] user friendliness uber 9000 --- lib/core/enums.py | 1 + lib/techniques/blind/inference.py | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/lib/core/enums.py b/lib/core/enums.py index 2e17fc674..39a21aac1 100644 --- a/lib/core/enums.py +++ b/lib/core/enums.py @@ -101,6 +101,7 @@ class WARNFLAGS: THREADS = 'threads' PIVOT_LIMIT = 'pivotLimit' TIME_UNRECOVERED = 'timeUnrecovered' + SINGLE_THREAD = 'singleThread' class EXPECTED: BOOL = "bool" diff --git a/lib/techniques/blind/inference.py b/lib/techniques/blind/inference.py index edf1db3c9..0bf0f4528 100644 --- a/lib/techniques/blind/inference.py +++ b/lib/techniques/blind/inference.py @@ -7,6 +7,7 @@ Copyright (c) 2006-2011 sqlmap developers (http://sqlmap.sourceforge.net/) See the file 'doc/COPYING' for copying permission """ +import logging import threading import time import traceback @@ -25,6 +26,7 @@ from lib.core.common import pushValue from lib.core.common import readInput from lib.core.common import replaceNewlineTabs from lib.core.common import safeStringFormat +from lib.core.common import singleTimeLogMessage from lib.core.common import unhandledExceptionMessage from lib.core.data import conf from lib.core.data import kb @@ -32,6 +34,7 @@ from lib.core.data import logger from lib.core.data import queries from lib.core.enums import DBMS from lib.core.enums import PAYLOAD +from lib.core.enums import WARNFLAGS from lib.core.exception import sqlmapConnectionException from lib.core.exception import sqlmapValueException from lib.core.exception import sqlmapThreadException @@ -112,6 +115,11 @@ def bisection(payload, expression, length=None, charsetType=None, firstChar=None logger.debug(debugMsg) numThreads = 1 + if conf.threads == 1 and not timeBasedCompare: + warnMsg = "running in a single-thread mode. please consider usage of " + warnMsg += "--threads option to declare higher number of threads" + singleTimeLogMessage(warnMsg, logging.WARN, WARNFLAGS.SINGLE_THREAD) + if conf.verbose in (1, 2) and not showEta: if isinstance(length, int) and conf.threads > 1: dataToStdout("[%s] [INFO] retrieved: %s" % (time.strftime("%X"), "_" * min(length, conf.progressWidth)))