tfGetHostByAddr
Table of Contents >> Application Reference >> DNS Resolver
#include <trsocket.h> |
int tfGetHostByAddr | ( |
const struct sockaddr_storage TM_FAR * addressPtr, | |
struct tsHostent TM_FAR * TM_FAR * hostEntryPtrPtr | |
); |
Function Description
Do a reverse lookup to retrieve the hostname for the specified IP address. This function is similar to Treck functions getnameinfo() and tfDnsGetHostByAddr() except this function will first search the Hosts Table for a matching IP address. If there is no entry in the Hosts Table for addressPtr, this function will generate a DNS query in an attempt to resolve the name externally. The information returned by this function is snapshot of potentially transient data. The volatile data is copied into a dynamically allocated block of memory, to which a pointer is returned. The caller must eventually free the block by calling tfFreeHostEntry() with the pointer returned by this function.
Parameters
- addressPtr
- IP address to resolve to a hostname.
- hostEntryPtrPtr
- Pointer to a variable to receive a pointer to the data.
Note: | The caller must eventually call tfFreeHostEntry() with the pointer returned by this function when the host information is no longer needed. |
Returns
- TM_ENOERROR
- Success.
- TM_EPERM
- Call tfDnsInit() first.
- TM_EINVAL
- A NULL pointer was provided.
- TM_ENOMEM
- Memory allocation failed.
- TM_EAFNOSUPPORT
- addressPtr or addressFamily is not AF_INET or AF_INET6.
- TM_EWOULDBLOCK
- DNS lookup in progress. The user should continue to call this function with the same parameters until it returns a value other than TM_EWOULDBLOCK.
- TM_ENOBUFS
- Insufficient packet buffers.
- TM_EFILE
- Treck was unable to successfully allocate a socket for the DNS request. This could indicate Treck did not have the resources to allocate another socket. It could also be due to Treck hitting the limit of sockets set by TM_DNS_MAX_SOCKETS_ALLOWED or the tfDnsSetOption() option: TM_DNS_OPTION_MAX_SOCKETS_ALLOWED.
- TM_ETIMEDOUT
- DNS server failed to respond in a timely fashion.
- TM_EHOSTUNREACH
- No route to DNS server.
- TM_DNS_EANSWER
- No answer from the name server.
- TM_DNS_ECACHE_FULL
- Response lost, internal DNS cache is full.
- TM_EINPROGRESS
- Cannot replace a cache entry that is currently being used.