diff --git a/lib/core/option.py b/lib/core/option.py index d8a9a467d..b666c79a6 100644 --- a/lib/core/option.py +++ b/lib/core/option.py @@ -122,6 +122,7 @@ from lib.core.settings import NULL from lib.core.settings import PARAMETER_SPLITTING_REGEX from lib.core.settings import PROBLEMATIC_CUSTOM_INJECTION_PATTERNS from lib.core.settings import SITE +from lib.core.settings import SOCKET_PRE_CONNECT_QUEUE_SIZE from lib.core.settings import SQLMAP_ENVIRONMENT_PREFIX from lib.core.settings import SUPPORTED_DBMS from lib.core.settings import SUPPORTED_OS @@ -1027,7 +1028,7 @@ def _setSocketPreConnect(): while kb.threadContinue: try: for address in socket._ready: - if len(socket._ready[address]) < conf.threads: + if len(socket._ready[address]) < SOCKET_PRE_CONNECT_QUEUE_SIZE: s = socket.socket() s._connect(address) with kb.locks.socket: diff --git a/lib/core/settings.py b/lib/core/settings.py index d478ae50a..72d7a906f 100644 --- a/lib/core/settings.py +++ b/lib/core/settings.py @@ -466,6 +466,9 @@ ROTATING_CHARS = ('\\', '|', '|', '/', '-') # Approximate chunk length (in bytes) used by BigArray objects (only last chunk and cached one are held in memory) BIGARRAY_CHUNK_SIZE = 1024 * 1024 +# Maximum number of socket pre-connects +SOCKET_PRE_CONNECT_QUEUE_SIZE = 3 + # Only console display last n table rows TRIM_STDOUT_DUMP_SIZE = 256