tfGetHostByAddr

Jump to: navigation, search

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 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.


Table of Contents >> Application Reference >> DNS Resolver