Nmap Development mailing list archives
Making Threads Wait for Other Thread's Results
From: "Patrick Donnelly" <batrick.donnelly () gmail com>
Date: Fri, 6 Jun 2008 04:12:42 -0600
Hey guys, I've formed a solution for the problem discussed in this thread: http://seclists.org/nmap-dev/2008/q1/0294.html The problem is threads (coroutines) have no method of entering and leaving the waiting thread queue except through the nsock library. This introduces problems for scripts that query a service that may ban your IP if many threads are making queries for different targets at the same time. I'm going to add a function to the nmap library that allows you to yield the current thread so long as certain conditions are met (discussed later). The function is passed the Script's ID (http://nmap.org/book/nse-scripts.html#nse-format-id) in order to generate a function that allows you to yield your thread. This function is to be called with string "lock" in order to get a lock for thread's of that script (similar to a mutex). It should be called before any "competitive" work is done by each thread. Once this function returns, you can continue as normal. When your thread is finished, before returning from main (action), you must release your lock by calling the function again with the argument "done". It's functionality will work as follows: <file> author = "Patrick" id = "My script's unique ID" local my_mutex = nmap.mutex(id); function action(host, port) my_mutex"lock"; -- Do stuff my_mutex"done"; return script_output; end </file> If you have any comments or questions please ask. Cheers, -- -Patrick Donnelly "One of the lessons of history is that nothing is often a good thing to do and always a clever thing to say." -Will Durant _______________________________________________ Sent through the nmap-dev mailing list http://cgi.insecure.org/mailman/listinfo/nmap-dev Archived at http://SecLists.Org
Current thread:
- Making Threads Wait for Other Thread's Results Patrick Donnelly (Jun 06)
- Re: Making Threads Wait for Other Thread's Results Patrick Donnelly (Jun 06)