1
0
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:
dmiller
2024-05-16 19:31:45 +00:00
parent 7f7996977d
commit 8b8c6fca4e

View File

@@ -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) {