mirror of
https://github.com/nmap/nmap.git
synced 2025-12-06 12:41:29 +00:00
mass_dns: Correctly handle write errors/timeouts
This commit is contained in:
19
nmap_dns.cc
19
nmap_dns.cc
@@ -474,17 +474,26 @@ static void do_possible_writes() {
|
|||||||
|
|
||||||
// nsock write handler
|
// nsock write handler
|
||||||
static void write_evt_handler(nsock_pool nsp, nsock_event evt, void *req_v) {
|
static void write_evt_handler(nsock_pool nsp, nsock_event evt, void *req_v) {
|
||||||
|
assert(nse_type(evt) == NSE_TYPE_WRITE);
|
||||||
info record;
|
info record;
|
||||||
request *req = (request *) req_v;
|
request *req = (request *) req_v;
|
||||||
|
|
||||||
req->curr_server->write_busy = 0;
|
req->curr_server->write_busy = 0;
|
||||||
|
|
||||||
req->curr_server->in_process.push_front(req);
|
if (nse_status(evt) == NSE_STATUS_SUCCESS) {
|
||||||
record.tpreq = req;
|
req->curr_server->in_process.push_front(req);
|
||||||
record.server = req->curr_server;
|
record.tpreq = req;
|
||||||
records[req->id] = record;
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
do_possible_writes();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static DNS::RECORD_TYPE wire_type(DNS::RECORD_TYPE t) {
|
static DNS::RECORD_TYPE wire_type(DNS::RECORD_TYPE t) {
|
||||||
|
|||||||
Reference in New Issue
Block a user