mirror of
https://github.com/nmap/nmap.git
synced 2025-12-06 04:31:29 +00:00
mass_dns: Correctly handle write errors/timeouts
This commit is contained in:
11
nmap_dns.cc
11
nmap_dns.cc
@@ -474,18 +474,27 @@ static void do_possible_writes() {
|
||||
|
||||
// nsock write handler
|
||||
static void write_evt_handler(nsock_pool nsp, nsock_event evt, void *req_v) {
|
||||
assert(nse_type(evt) == NSE_TYPE_WRITE);
|
||||
info record;
|
||||
request *req = (request *) req_v;
|
||||
|
||||
req->curr_server->write_busy = 0;
|
||||
|
||||
if (nse_status(evt) == NSE_STATUS_SUCCESS) {
|
||||
req->curr_server->in_process.push_front(req);
|
||||
record.tpreq = req;
|
||||
record.server = req->curr_server;
|
||||
records[req->id] = record;
|
||||
|
||||
do_possible_writes();
|
||||
}
|
||||
else {
|
||||
if (o.debugging) {
|
||||
log_write(LOG_STDOUT, "mass_dns: WRITE error: %s", nse_status2str(nse_status(evt)));
|
||||
}
|
||||
req->curr_server->to_process.push_front(req);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static DNS::RECORD_TYPE wire_type(DNS::RECORD_TYPE t) {
|
||||
if (t == DNS::ANY) {
|
||||
|
||||
Reference in New Issue
Block a user