- Main Page
- Modules
- Data Structures
- Files
- Examples

# DNS resolver
[Applications]

## Detailed Description

The uIP DNS resolver functions are used to lookup a hostname and map it to a numerical IP address.

It maintains a list of resolved hostnames that can be queried with the resolv_lookup() function. New hostnames can be resolved using the resolv_query() function.

When a hostname has been resolved (or found to be non-existant), the resolver code calls a callback function called resolv_found() that must be implemented by the module that uses the resolver.

## Files
file | resolv.h
| DNS resolver code header file.

file | resolv.c
| DNS host name to IP address resolver.

## Defines
#define | UIP_UDP_APPCALL resolv_appcall
#define | NULL (void *)0
#define | MAX_RETRIES 8
#define | RESOLV_ENTRIES 4
## Functions
void | resolv_appcall (void)
void | resolv_found (char *name, u16_t *ipaddr)
| Callback function which is called when a hostname is found.
void | resolv_conf (u16_t *dnsserver)
| Configure which DNS server to use for queries.
u16_t * | resolv_getserver (void)
| Obtain the currently configured DNS server.
void | resolv_init (void)
| Initalize the resolver.
u16_t * | resolv_lookup (char *name)
| Look up a hostname in the array of known hostnames.
void | resolv_query (char *name)
| Queues a name so that a question for the name will be sent out.

## Function Documentation

void resolv_conf | ( | u16_t * | dnsserver | ) |

  | Configure which DNS server to use for queries. Parameters:
  | dnsserver | A pointer to a 4-byte representation of the IP address of the DNS server to be configured.
Examples: resolv.c, and resolv.h. Definition at line 438 of file resolv.c. References HTONS, NULL, uip_udp_new(), and uip_udp_remove.

void resolv_found | ( | char * | name,
|  | u16_t * | ipaddr
| ) |

  | Callback function which is called when a hostname is found. This function must be implemented by the module that uses the DNS resolver. It is called when a hostname is found, or when a hostname was not found. Parameters:
  | name | A pointer to the name that was looked up.
  | ipaddr | A pointer to a 4-byte array containing the IP address of the hostname, or NULL if the hostname could not be found.
Examples: resolv.c, and resolv.h.

u16_t * resolv_getserver | ( | void |  | ) |

| Obtain the currently configured DNS server. Returns: A pointer to a 4-byte representation of the IP address of the currently configured DNS server or NULL if no DNS server has been configured. Examples: resolv.c, and resolv.h. Definition at line 422 of file resolv.c. References NULL, and uip_udp_conn::ripaddr.

u16_t * resolv_lookup | ( | char * | name | ) |

| Look up a hostname in the array of known hostnames. Note: This function only looks in the internal array of known hostnames, it does not send out a query for the hostname if none was found. The function resolv_query() can be used to send a query for a hostname. Returns: A pointer to a 4-byte representation of the hostname's IP address, or NULL if the hostname was not found in the array of hostnames. Examples: resolv.c, resolv.h, and webclient.c. Definition at line 396 of file resolv.c. References RESOLV_ENTRIES, and STATE_DONE. Referenced by webclient_appcall(), and webclient_get().

void resolv_query | ( | char * | name | ) |

  | Queues a name so that a question for the name will be sent out. Parameters:
  | name | The hostname that is to be queried.
Examples: resolv.c, resolv.h, and webclient.c. Definition at line 350 of file resolv.c. References RESOLV_ENTRIES, and STATE_UNUSED. Referenced by webclient_appcall().