eui64eui64_atoneui64_ntoaeui64_ntohosteui64_hostton
- IEEE EUI-64 conversion and lookup routines
LIBRARY
Lb libc
SYNOPSIS
#include <sys/types.h>
#include <sys/eui64.h> int
eui64_aton (const char *a struct eui64 *e); int
eui64_ntoa (const struct eui64 *id char *a size_t len); int
eui64_ntohost (char *hostname size_t len const struct eui64 *id); int
eui64_hostton (const char *hostname struct eui64 *id);
DESCRIPTION
These functions operate on IEEE EUI-64s using an
Vt eui64
structure, which is defined in the header file
In sys/eui64.h :
/*
* The number of bytes in an EUI-64.
*/
#define EUI64_LEN 8
/*
* Structure of an IEEE EUI-64.
*/
struct eui64 {
u_char octet[EUI64_LEN];
};
The
eui64_aton ();
function converts an
ASCII
representation of an EUI-64 into an
Vt eui64
structure.
Likewise,
eui64_ntoa ();
converts an EUI-64 specified as an
Vt eui64
structure into an
ASCII
string.
The
eui64_ntohost ();
and
eui64_hostton ();
functions map EUI-64s to their corresponding hostnames
as specified in the
/etc/eui64
database.
The
eui64_ntohost ();
function
converts from EUI-64 to hostname, and
eui64_hostton ();
converts from hostname to EUI-64.
RETURN VALUES
On success,
eui64_ntoa ();
returns a pointer to a string containing an
ASCII
representation of an EUI-64.
If it is unable to convert
the supplied
Vt eui64
structure, it returns a
NULL
pointer.
Likewise,
eui64_aton ();
returns a pointer to an
Vt eui64
structure on success and a
NULL
pointer on failure.
The
eui64_ntohost ();
and
eui64_hostton ();
functions both return zero on success or non-zero if they were
unable to find a match in the
/etc/eui64
database.
NOTES
The user must insure that the hostname strings passed to the
eui64_ntohost ();
and
eui64_hostton ();
functions are large enough to contain the returned hostnames.
NIS INTERACTION
If the
/etc/eui64
contains a line with a single
`+'
in it, the
eui64_ntohost ();
and
eui64_hostton ();
functions will attempt to consult the NIS
eui64.byname
and
eui64.byid
maps in addition to the data in the
/etc/eui64
file.
These functions first appears in
Fx 5.3 .
They are derived from the
ethers(3)
family of functions.
BUGS
The
eui64_aton ();
and
eui64_ntoa ();
functions returns values that are stored in static memory areas
which may be overwritten the next time they are called.