From c17821cc111a86574a0edacf9a78f38b5078c0b7 Mon Sep 17 00:00:00 2001 From: Luke Huang Date: Tue, 20 Nov 2018 11:38:23 +0800 Subject: Add asynchronous DNS query API Adds support for asynchronous "raw" DNS API for clients. API allows apps to use multinetworking capability correctly and also allows other query types than A/AAAA. Test: built, flashed, booted cts test: NativeDnsAsyncTest Change-Id: I4701b76bd8f0094ef1bdd7c5371b54387914a91b --- native/android/net.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'native/android/net.c') diff --git a/native/android/net.c b/native/android/net.c index 60296a7bd00c..e32b7875b4e7 100644 --- a/native/android/net.c +++ b/native/android/net.c @@ -83,3 +83,31 @@ int android_getaddrinfofornetwork(net_handle_t network, return android_getaddrinfofornet(node, service, hints, netid, 0, res); } + +int android_res_nquery(net_handle_t network, + const char *dname, int ns_class, int ns_type) { + unsigned netid; + if (!getnetidfromhandle(network, &netid)) { + return -ENONET; + } + + return resNetworkQuery(netid, dname, ns_class, ns_type); +} + +int android_res_nresult(int fd, int *rcode, unsigned char *answer, int anslen) { + return resNetworkResult(fd, rcode, answer, anslen); +} + +int android_res_nsend(net_handle_t network, + const unsigned char *msg, int msglen) { + unsigned netid; + if (!getnetidfromhandle(network, &netid)) { + return -ENONET; + } + + return resNetworkSend(netid, msg, msglen); +} + +void android_res_cancel(int nsend_fd) { + resNetworkCancel(nsend_fd); +} -- cgit v1.2.3-59-g8ed1b