diff options
author | Yongsheng Xu <chuxdesign@hotmail.com> | 2021-12-10 11:05:13 +0800 |
---|---|---|
committer | Yongsheng Xu <chuxdesign@hotmail.com> | 2021-12-10 11:05:13 +0800 |
commit | cd6a41ecdddc7b2a99a81401858dd2dc6cdc80bb (patch) | |
tree | 82e7851b659c3ff5cd43f58d6cc0849ac2795e5f /evdns.c | |
parent | 12cedc8a4f3f01dd25d3eaf3b1d602d691233446 (diff) | |
download | libevent-cd6a41ecdddc7b2a99a81401858dd2dc6cdc80bb.tar.gz |
feat: add `evdns_base_get_nameserver_fd` method
To get underlying udp socket fd.
Diffstat (limited to 'evdns.c')
-rw-r--r-- | evdns.c | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -3435,6 +3435,27 @@ done: return result; } +int +evdns_base_get_nameserver_fd(struct evdns_base *base, int idx) +{ + int result = -1; + int i; + struct nameserver *server; + EVDNS_LOCK(base); + server = base->server_head; + for (i = 0; i < idx && server; ++i, server = server->next) { + if (server->next == base->server_head) + goto done; + } + if (! server) + goto done; + result = server->socket; +done: + EVDNS_UNLOCK(base); + return result; +} + + /* remove from the queue */ static void evdns_request_remove(struct request *req, struct request **head) |