nwrap: rewrite linked-list datastructures to be properly separated.
The data structures were wrong:
- The nwrap_entdata structures reflects one line of the hosts
file, with ip, fqdn and aliases.
But they also had a linked list structure.
- Now the hash table was used to point each
ip address, fqdn and alias name occurring in the hosts
file to the list of lines (entdata structs) that contain
this name/address.
The problem was that these list heads were pointing to the same
entdata structures, while the list should actually be individual
for each entity (ip, fqdn, alias). This lead to wrong assiciations
of lines to IP addresse and also endless loops in the list, when
one line was put into one list twice starting from two different
points.
This patch fixes this by lifting the linked list structure to
a layer nwrap_entlist above nwrap_entdata. The entlist
entries just contain pointers to the entdata, and hence
each line can be referenced independetly by several lists.
Signed-off-by: Michael Adam <obnox@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>