summaryrefslogtreecommitdiff
path: root/libcli/dns
diff options
context:
space:
mode:
authorKai Blin <kai@samba.org>2012-10-13 02:09:57 +0200
committerJeremy Allison <jra@samba.org>2012-10-16 12:58:31 +0200
commit05a59748910cc11d43bffbfc4d00fdf3701e2ca1 (patch)
tree12ba643db8b58412dbaf3946a31931ab5e287b9b /libcli/dns
parent1861213d147e0d96fd637813c5badb4908ec14d1 (diff)
downloadsamba-05a59748910cc11d43bffbfc4d00fdf3701e2ca1.tar.gz
samba-05a59748910cc11d43bffbfc4d00fdf3701e2ca1.tar.bz2
samba-05a59748910cc11d43bffbfc4d00fdf3701e2ca1.zip
libcli/dns: Time out requests after a while
Time out UDP requests after DNS_REQUEST_TIMEOUT seconds. Currently set to 2 seconds. This should fix bug #8878. Signed-off-by: Jeremy Allison <jra@samba.org> Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Tue Oct 16 12:58:32 CEST 2012 on sn-devel-104
Diffstat (limited to 'libcli/dns')
-rw-r--r--libcli/dns/dns.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libcli/dns/dns.c b/libcli/dns/dns.c
index da65ce4c4f..43e1c4e0c7 100644
--- a/libcli/dns/dns.c
+++ b/libcli/dns/dns.c
@@ -38,6 +38,8 @@ struct dns_udp_request_state {
size_t reply_len;
};
+#define DNS_REQUEST_TIMEOUT 2
+
/* Declare callback functions used below. */
static void dns_udp_request_get_reply(struct tevent_req *subreq);
static void dns_udp_request_done(struct tevent_req *subreq);
@@ -92,6 +94,12 @@ struct tevent_req *dns_udp_request_send(TALLOC_CTX *mem_ctx,
return tevent_req_post(req, ev);
}
+ if (!tevent_req_set_endtime(req, ev,
+ timeval_current_ofs(DNS_REQUEST_TIMEOUT, 0))) {
+ return tevent_req_post(req, ev);
+ }
+
+
tevent_req_set_callback(subreq, dns_udp_request_get_reply, req);
return req;
}