Skip to main content
Open topic with navigation

OnIpGetHostByName

CAPL Functions » TCP/IP API » OnIpGetHostByName

Valid for: CANoe DE • CANoe4SW DE

Function Syntax

void OnIpGetHostByName(long result, char hostname[], dword ipv4Address[], dword count); // from 1
void OnIpGetHostByName(long result, char hostname[], byte ipv6Address[][], dword count); // from 2

Description

The callback is called if a previous call of IpGetHostByName is returned with error code WSAEWOULDBLOCK (10035) and the dissolve of the address is completed.

Parameters

  • result: The result of the function. See the Winsock 2 Error Codes for possible errors. Typical values are:
    • result: 0: The function completed successfully.
    • WSAHOST_NOT_FOUND (11001): Host not found.
  • hostname: The hostname which was resolved by the function.
  • ipv4Address: Array in which the determined IPv4 addresses are written.
  • ipv6Address: Array in which the determined IPv6 addresses are written.
  • count: Number of determined addresses.

Return Values

Example

//
// This example is only running when "Use TCP/IP stack of operating system"
// is selected.
//

on start
{
  long result;
  dword count;
  dword v4Addrs[10];
  char hostname[255];
  //
  // get IPv4 address of www.vector.de
  //
  count = elCount(v4Addrs);
  strncat(hostname, "www.vector.de", elcount(hostname));
  result = IpGetHostByName(hostname, v4Addrs, count);
  WriteAddresses(result, hostname, v4Addrs, count);
}

//
// callback is called when the DNS lookup has completed
//
void OnIpGetHostByName(long result, char hostname[], dword ipv4Address[], dword count)
{
  WriteAddresses(result, hostname, ipv4Address, count);
}

//
// print the address to the write window
//
void WriteAddresses(dword result, char hostname[], dword ipv4Address[], dword count)
{
  dword loop;
  char addrStr[16];
  if(result == 0)
  {
    write("IPv4 Addresses of %s:", hostname);
    for(loop = 0; loop < count; loop++)
    {
      ipGetAddressAsString(ipv4Address[loop], addrStr, elcount(addrStr));
      write("%s", addrStr);
    }
  }
  else if(result == 11001)
  {
    write("host %s not found", hostname);
  }
}