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_tresolv_getserver (void)
 Obtain the currently configured DNS server.
void resolv_init (void)
 Initalize the resolver.
u16_tresolv_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().


Generated on Mon Jun 12 10:23:02 2006 for uIP 1.0 by  doxygen 1.4.6