From 6c8a753013685bbecd787a3c120853709344130d Mon Sep 17 00:00:00 2001 From: tudor Date: Fri, 22 Jul 2016 05:18:32 +0000 Subject: [PATCH] CONCURRENCY_LIMIT in NSE can be increased above 1000 with a higher --min-parallelism value --- nse_main.cc | 5 +++++ nse_main.lua | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/nse_main.cc b/nse_main.cc index fcb850eff..8b973866d 100644 --- a/nse_main.cc +++ b/nse_main.cc @@ -39,6 +39,7 @@ #define NSE_FORMAT_TABLE "NSE_FORMAT_TABLE" #define NSE_FORMAT_XML "NSE_FORMAT_XML" +#define NSE_PARALLELISM "NSE_PARALLELISM" #ifndef MAXPATHLEN # define MAXPATHLEN 2048 @@ -589,6 +590,10 @@ static int init_main (lua_State *L) lua_call(L, 2, 1); /* returns the NSE main function */ lua_setfield(L, LUA_REGISTRYINDEX, NSE_MAIN); + + lua_pushinteger(L, o.min_parallelism); + lua_setfield(L, LUA_REGISTRYINDEX, NSE_PARALLELISM); + return 0; } diff --git a/nse_main.lua b/nse_main.lua index 791659d6d..33ed5c93f 100644 --- a/nse_main.lua +++ b/nse_main.lua @@ -51,6 +51,7 @@ local DESTRUCTOR = "NSE_DESTRUCTOR"; local SELECTED_BY_NAME = "NSE_SELECTED_BY_NAME"; local FORMAT_TABLE = "NSE_FORMAT_TABLE"; local FORMAT_XML = "NSE_FORMAT_XML"; +local PARALLELISM = "NSE_PARALLELISM"; -- Unique value indicating the action function is going to run. local ACTION_STARTING = {}; @@ -1305,6 +1306,10 @@ local function main (hosts, scantype) insert(runlevels[script.runlevel], script); end + if _R[PARALLELISM] > CONCURRENCY_LIMIT then + CONCURRENCY_LIMIT = _R[PARALLELISM]; + end + if scantype == NSE_PRE_SCAN then print_verbose(1, "Script Pre-scanning."); elseif scantype == NSE_SCAN then