Add NDK API for getprocdns,setprocdns
The API allows callers to control the default network that is used for DNS hostname resolution. Test: atest CtsNetTestCases Tests in change I00143cafcd3eb1d71e8d5c7ea9c839a99dc6f4ce Bug: 171540887 Change-Id: I42f0d9b17b3058f6e10fd2e651278b290f26667f
This commit is contained in:
parent
49148d762d
commit
86ae725fb9
@ -287,6 +287,8 @@ LIBANDROID {
|
||||
android_getaddrinfofornetwork; # introduced=23
|
||||
android_getprocnetwork; # introduced=31
|
||||
android_setprocnetwork; # introduced=23
|
||||
android_getprocdns; # introduced=31
|
||||
android_setprocdns; # introduced=31
|
||||
android_setsocknetwork; # introduced=23
|
||||
android_res_cancel; # introduced=29
|
||||
android_res_nquery; # introduced=29
|
||||
|
@ -16,6 +16,8 @@ LIBANDROID_NET {
|
||||
android_res_nsend; # llndk
|
||||
# These functions have been part of the NDK since API 31.
|
||||
android_getprocnetwork; # llndk
|
||||
android_setprocdns; # llndk
|
||||
android_getprocdns; # llndk
|
||||
local:
|
||||
*;
|
||||
};
|
||||
|
@ -90,6 +90,38 @@ int android_getprocnetwork(net_handle_t *network) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int android_setprocdns(net_handle_t network) {
|
||||
unsigned netid;
|
||||
if (!getnetidfromhandle(network, &netid)) {
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
|
||||
int rval = setNetworkForResolv(netid);
|
||||
if (rval < 0) {
|
||||
errno = -rval;
|
||||
rval = -1;
|
||||
}
|
||||
return rval;
|
||||
}
|
||||
|
||||
int android_getprocdns(net_handle_t *network) {
|
||||
if (network == NULL) {
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
|
||||
unsigned netid;
|
||||
int rval = getNetworkForDns(&netid);
|
||||
if (rval < 0) {
|
||||
errno = -rval;
|
||||
return -1;
|
||||
}
|
||||
|
||||
*network = gethandlefromnetid(netid);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int android_getaddrinfofornetwork(net_handle_t network,
|
||||
const char *node, const char *service,
|
||||
const struct addrinfo *hints, struct addrinfo **res) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user