Networking
#include <multinetwork.h>
Summary
Typedefs |
|
---|---|
net_handle_t
|
typedefuint64_t
The corresponding C type for android.net.Network::getNetworkHandle() return values. |
Functions |
|
---|---|
android_getaddrinfofornetwork(net_handle_t network, const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res)
|
int
Perform hostname resolution via the DNS servers associated with |network|.
|
android_setprocnetwork(net_handle_t network)
|
int
Binds the current process to |network|.
|
android_setsocknetwork(net_handle_t network, int fd)
|
int
All functions below that return an int return 0 on success or -1 on failure with an appropriate errno value set.
|
Typedefs
net_handle_t
uint64_t net_handle_t
The corresponding C type for android.net.Network::getNetworkHandle() return values.
The Java signed long value can be safely cast to a net_handle_t:
[C] ((net_handle_t) java_long_network_handle) [C++] static_cast
as appropriate.
Functions
android_getaddrinfofornetwork
int android_getaddrinfofornetwork( net_handle_t network, const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res )
Perform hostname resolution via the DNS servers associated with |network|.
All arguments (apart from |network|) are used identically as those passed to getaddrinfo(3). Return and error values are identical to those of getaddrinfo(3), and in particular gai_strerror(3) can be used as expected. Similar to getaddrinfo(3):
- |hints| may be NULL (in which case man page documented defaults apply)
- either |node| or |service| may be NULL, but not both
- |res| must not be NULL
This is the equivalent of: android.net.Network::getAllByName())
android_setprocnetwork
int android_setprocnetwork( net_handle_t network )
Binds the current process to |network|.
All sockets created in the future (and not explicitly bound via android_setsocknetwork()) will be bound to |network|. All host name resolutions will be limited to |network| as well. Note that if the network identified by |network| ever disconnects, all sockets created in this way will cease to work and all host name resolutions will fail. This is by design so an application doesn't accidentally use sockets it thinks are still bound to a particular network.
To clear a previous process binding, invoke with NETWORK_UNSPECIFIED.
This is the equivalent of: android.net.ConnectivityManager::setProcessDefaultNetwork())
android_setsocknetwork
int android_setsocknetwork( net_handle_t network, int fd )
All functions below that return an int return 0 on success or -1 on failure with an appropriate errno value set.
Set the network to be used by the given socket file descriptor.
To clear a previous socket binding, invoke with NETWORK_UNSPECIFIED.
This is the equivalent of: android.net.Network::bindSocket())