arp-scan currently uses the POSIX hash table functions hcreate() and hsearch() defined in <search.h> to store the MAC/vendor mapping table. This has the disadvantage that the maximum table size must be specified in the hcreate() call and there is no way to increase the size after hash table creation, which requires defining a constant that must be changed if the size of the ieee database exceeds this limit, or making two passes through the mac/vendor file (one to determine the number of entries and another to load the data). Neither of these are ideal options.
I am considering using the M*LIB dictionary hash table implementation which does not have this limitation and generally seems to be a better and more modern implementation.
arp-scan currently uses the POSIX hash table functions
hcreate()andhsearch()defined in<search.h>to store the MAC/vendor mapping table. This has the disadvantage that the maximum table size must be specified in thehcreate()call and there is no way to increase the size after hash table creation, which requires defining a constant that must be changed if the size of the ieee database exceeds this limit, or making two passes through the mac/vendor file (one to determine the number of entries and another to load the data). Neither of these are ideal options.I am considering using the M*LIB dictionary hash table implementation which does not have this limitation and generally seems to be a better and more modern implementation.