if (parse_res)
if (parse_res > 0)
_nss_nisplus_gethostbyname2_r (const char *name, int af, struct hostent *host,			      char *buffer, size_t buflen, int *herrnop){  int parse_res, retval;  if (tablename_val == NULL)    if (_nss_create_tablename() != NSS_STATUS_SUCCESS)      {	*herrnop = NETDB_INTERNAL;	return NSS_STATUS_UNAVAIL;      }  if (name == NULL)    {      __set_errno (EINVAL);      *herrnop = NETDB_INTERNAL;      return NSS_STATUS_NOTFOUND;    }  else    {      nis_result *result;      char buf[strlen (name) + 255 + tablename_len];      /* Search at first in the alias list, and use the correct name	 for the next search */      sprintf(buf, "[name=%s],%s", name, tablename_val);      result = nis_list(buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);      /* If we do not find it, try it as original name. But if the	 database is correct, we should find it in the first case, too */      if ((result->status != NIS_SUCCESS && result->status != NIS_S_SUCCESS) ||	  __type_of (result->objects.objects_val) != ENTRY_OBJ ||	  strcmp(result->objects.objects_val->EN_data.en_type,		 "hosts_tbl") != 0 ||	  result->objects.objects_val->EN_data.en_cols.en_cols_len < 3)	sprintf(buf, "[cname=%s],%s", name, tablename_val);      else	sprintf(buf, "[cname=%s],%s", NISENTRYVAL(0, 0, result),		tablename_val);      nis_freeresult (result);      result = nis_list(buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);      retval = niserr2nss (result->status);      if (retval != NSS_STATUS_SUCCESS)        {          if (retval == NSS_STATUS_TRYAGAIN)            {              __set_errno (EAGAIN);              *herrnop = NETDB_INTERNAL;            }	  nis_freeresult (result);          return retval;        }      parse_res =	_nss_nisplus_parse_hostent (result, af, host, buffer, buflen);      nis_freeresult (result);      if (parse_res)	return NSS_STATUS_SUCCESS;      *herrnop = NETDB_INTERNAL;      if (!parse_res && errno == ERANGE)	return NSS_STATUS_TRYAGAIN;      else	return NSS_STATUS_NOTFOUND;    }}