Merge "Add asynchronous DNS query API"

This commit is contained in:
Lorenzo Colitti
2018-12-13 00:43:47 +00:00
committed by Gerrit Code Review
3 changed files with 39 additions and 2 deletions

View File

@@ -218,6 +218,10 @@ LIBANDROID {
android_getaddrinfofornetwork; # introduced=23
android_setprocnetwork; # introduced=23
android_setsocknetwork; # introduced=23
android_res_cancel; # introduced=29
android_res_nquery; # introduced=29
android_res_nresult; # introduced=29
android_res_nsend; # introduced=29
local:
*;
};

View File

@@ -1,10 +1,15 @@
# These functions have been part of the NDK since API 24.
# They are also all available to vendor code.
LIBANDROID_NET {
global:
# These functions have been part of the NDK since API 24.
android_getaddrinfofornetwork; # vndk
android_setsocknetwork; # vndk
android_setprocnetwork; # vndk
android_getaddrinfofornetwork; # vndk
# These functions have been part of the NDK since API 29.
android_res_cancel; # vndk
android_res_nquery; # vndk
android_res_nresult; # vndk
android_res_nsend; # vndk
local:
*;
};

View File

@@ -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);
}