if (!parse_res && errno == ERANGE) return NSS_STATUS_TRYAGAIN; else return NSS_STATUS_NOTFOUND;
return NSS_STATUS_NOTFOUND;
_nss_nisplus_getprotobyname_r (const char *name, struct protoent *proto,			       char *buffer, size_t buflen){  int parse_res;  if (tablename_val == NULL)    if (_nss_create_tablename () != NSS_STATUS_SUCCESS)      return NSS_STATUS_UNAVAIL;  if (name == NULL)    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,		  "protocols_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);      if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)	{	  enum nss_status status = niserr2nss (result->status);	  nis_freeresult (result);	  return status;	}      parse_res = _nss_nisplus_parse_protoent (result, proto, buffer, buflen);      nis_freeresult (result);      if (parse_res)	return NSS_STATUS_SUCCESS;      if (!parse_res && errno == ERANGE)	return NSS_STATUS_TRYAGAIN;      else	return NSS_STATUS_NOTFOUND;    }}