Improve error handling in Protocols.DNS
Protocols.DNS
complains the following if the originator has gone away:
18:01:07 : DNS: Failed to read UDP packet. Connection refused?
18:01:07 29m28.8s : Attempt to call the NULL-value
18:01:07 : Unknown program: 0("foo.example.coms","127.0.0.1",0,80)
18:01:07 : pike/lib/modules/Protocols.pmod/DNS.pmod:2028: Protocols.DNS.global_async_client->generic_get("foo.example.com",mapping[21],-1,0,1,"a","foo.example.com",0,0,80)
18:01:07 : pike/lib/modules/Protocols.pmod/DNS.pmod:1991: Protocols.DNS.global_async_client->rec_data(mapping[3])
18:01:07 : pike/lib/modules/Stdio.pmod/module.pmod:3671: Protocols.DNS.global_async_client->_read_callback()
18:01:07 29m28.8s : -:1: Pike.Backend(0)->`()(3600.0)
More reasonable would be to ignore the callback if it is NULL, and to complain about a broken callback if the call fails.