I changed the files NSS backend for networks because I thought the
getent use of getnetbyaddr is correct. But it isn't. Undo parts
of the last change and fix getent.
2009-07-01 Ulrich Drepper <drepper@redhat.com>
* nss/nss_files/files-network.c (netbyaddr): If type is AF_UNSPEC,
- recognize all types. Fix endianess in comparison of network number.
+ recognize all types.
* nss/getent.c (networks_keys): Pass AF_UNSPEC instead of AF_UNIX
- to getnetbyaddr.
+ to getnetbyaddr. Fix network parameter to getnetbyaddr. It must
+ be in host byte order.
2009-06-26 H.J. Lu <hongjiu.lu@intel.com>
for (i = 0; i < number; ++i)
{
if (isdigit (key[i][0]))
- net = getnetbyaddr (inet_addr (key[i]), AF_UNSPEC);
+ net = getnetbyaddr (ntohl (inet_addr (key[i])), AF_UNSPEC);
else
net = getnetbyname (key[i]);
DB_LOOKUP (netbyaddr, ,,
{
if ((type == AF_UNSPEC || result->n_addrtype == type)
- && result->n_net == htonl (net))
+ && result->n_net == net)
/* Bingo! */
break;
}, uint32_t net, int type)