mirror of
https://github.com/nmap/nmap.git
synced 2026-01-08 15:39:05 +00:00
GetAdaptersAddresses is supposed to return ERROR_BUFFER_OVERFLOW and set len to the required size when len is too small. So normally we would call the function once with a small len, and then again with the longer len. But, on Windows 2003, apparently you only get ERROR_BUFFER_OVERFLOW the *first* time you call the function with a too-small len--the next time you get ERROR_INVALID_PARAMETER. So this function would fail the second and later times it is called. So, make the first call using a large len. On Windows 2003, this will work the first time as long as there are not too many adapters. (It will still fail with ERROR_INVALID_PARAMETER if there are too many adapters, but this will happen infrequently because of the large buffer.) Other systems that always return ERROR_BUFFER_OVERFLOW when appropriate will enlarge the buffer if the initial len is too short.
libdnet ------- libdnet provides a simplified, portable interface to several low-level networking routines, including network address manipulation, kernel arp(4) cache and route(4) table lookup and manipulation, network firewalling, network interface lookup and manipulation, IP tunnelling, and raw IP packet and Ethernet frame transmission. WWW: http://libdnet.sourceforge.net/ $Id: README 578 2005-02-14 21:00:17Z dugsong $