STRUCTS_TYPE_ETHER(3)

NAME
structs_type_dnsname - structs type for DNS resolvable hostnames

LIBRARY
PDEL Library (libpdel, -lpdel)

SYNOPSIS
#include <sys/types.h>
#include <pdel/structs/structs.h>
#include <pdel/structs/type/array.h>
#include <pdel/structs/type/dnsname.h>
extern const struct structs_type structs_type_dnsname;

DESCRIPTION
structs_type_dnsname is a structs(3) types for DNS resolvable hostnames. The represented data structure is a struct structs_dnsname, which contains both the ASCII hostname and an array of one or more IP addresses that resulted from a DNS lookup:

    DEFINE_STRUCTS_ARRAY(structs_dnsname_ips, struct in_addr);
    struct structs_dnsname {
        const char			*name;	/* dns name to look up */
        struct structs_dnsname_ips	ips;	/* array of >= 1 ip addrs */
    };

The ASCII representation of this type is just the hostname. When this ASCII form is converted to native binary form, a DNS lookup is performed and the ips array is filled in with the result. If the DNS lookup fails, so too does the ASCII conversion.

SEE ALSO
libpdel(3), structs(3), structs_type(3), structs_type_array(3)

HISTORY
The PDEL library was developed at Packet Design, LLC. http://www.packetdesign.com/

AUTHORS
Archie Cobbs <archie@freebsd.org>

BUGS
This type could be made more general, for example supporting MX records or IPv6 addresses.