Guy Harris wrote:
>
> > This is available throught resolv.h routines on all platforms
> > (see manuf and ethers files).
>
> ...although, on platforms where you have "ethers.byname" and
> "ethers.byaddr" NIS maps and routines such as the SunOS 4.x/5.x
> "ether_ntohost()" and "ether_hostton()" routines to look up stuff in
> "/etc/ethers" or those maps as appropriate, the "resolv.h" routines
> won't find stuff in the NIS maps.
>
> We might want to use those routines if they're present, and use our own
> routines if not.
No.
This was a design decision (look at comments on source code resolv.c) :
/*
* Ethernet / manufacturer resolution
*
* The following functions implement ethernet address resolution and
* ethers files parsing (see ethers(4)).
*
* /etc/manuf has the same format as ethers(4) except that names are
* truncated to MAXMANUFLEN-1 characters and that an address contains
* only 3 bytes (instead of 6).
*
* Notes:
*
* I decide to not use the existing functions (see ethers(3) on some
* operating systems) for the following reasons:
* - performance gains (use of hash tables and some other enhancements),
* - use of two ethers files (system-wide and per user),
* - avoid the use of NIS maps,
* - lack of these functions on some systems.
*
* So the following functions do _not_ behave as the standard ones.
*
* -- Laurent.
*/
The use of NIS maps shall be avoided for performance and reliability reasons
and to avoid generated network traffic when capturing.
Laurent.
--
Laurent DENIEL | E-mail: deniel@xxxxxxxxxxx
Paris, FRANCE | deniel@xxxxxxxxxxxxxxxxxxxxxxxxxxxx
| WWW : http://www.worldnet.fr/~deniel
All above opinions are personal, unless stated otherwise.