Skip to content
Snippets Groups Projects
Commit 6aa4b73c authored by Henrik (Grubba) Grubbström's avatar Henrik (Grubba) Grubbström
Browse files

Made rec_data() more paranoid.

Rev: lib/modules/Protocols.pmod/DNS.pmod:1.16
parent 9fe616d8
No related branches found
No related tags found
No related merge requests found
......@@ -525,14 +525,21 @@ class async_client
static private void rec_data()
{
mapping m=udp::read();
if(m->port != 53 || search(nameservers, m->ip) == -1) return;
sscanf(m->data,"%2c",int id);
object r=requests[id];
if(!r) return;
m_delete(requests,id);
r->callback(r->domain,decode_res(m->data),@r->args);
destruct(r);
mixed err;
if (err = catch {
mapping m=udp::read();
if(m->port != 53 || search(nameservers, m->ip) == -1) return;
sscanf(m->data,"%2c",int id);
object r=requests[id];
if(!r) return;
m_delete(requests,id);
r->callback(r->domain,decode_res(m->data),@r->args);
destruct(r);
}) {
werror(sprintf("DNS: Failed to read UDP packet. Connection refused?\n"
"%s\n",
describe_backtrace(err)));
}
}
static private void generic_get(string d,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment