if (parse_res < 1 && *errnop == ERANGE)
if (parse_res == -1)
internal_nisplus_gethostent_r (struct hostent *host, char *buffer,			       size_t buflen, int *errnop, int *herrnop){  int parse_res;  /* Get the next entry until we found a correct one. */  do    {      nis_result *saved_res;      if (result == NULL)	{	  saved_res = NULL;	  if (tablename_val == NULL)	    {	      enum nss_status status = _nss_create_tablename (errnop);	      if (status != NSS_STATUS_SUCCESS)		return status;	    }	  result = nis_first_entry (tablename_val);	  if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)            {              enum nss_status retval = niserr2nss (result->status);              if (retval == NSS_STATUS_TRYAGAIN)                {                  *herrnop = NETDB_INTERNAL;                  *errnop = errno;                }              return retval;            }	}      else	{	  nis_result *res2;	  saved_res = result;	  res2 = nis_next_entry(tablename_val, &result->cookie);	  result = res2;	  if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)            {              enum nss_status retval= niserr2nss (result->status);	      nis_freeresult (result);	      result = saved_res;              if (retval == NSS_STATUS_TRYAGAIN)                {                  *herrnop = NETDB_INTERNAL;		  *errnop = errno;                }              return retval;            }	}      parse_res = _nss_nisplus_parse_hostent (result, AF_INET6, host, buffer,					      buflen, errnop);      if (parse_res < 1 && *errnop != ERANGE)	parse_res = _nss_nisplus_parse_hostent (result, AF_INET, host,						buffer, buflen, errnop);      if (parse_res < 1 && *errnop == ERANGE)        {	  nis_freeresult (result);	  result = saved_res;          *herrnop = NETDB_INTERNAL;	  *errnop = ERANGE;          return NSS_STATUS_TRYAGAIN;        }      if (saved_res != NULL)	nis_freeresult (saved_res);    } while (!parse_res);  return NSS_STATUS_SUCCESS;}