parse_res = _nss_nisplus_parse_protoent (result, proto, buffer, buflen);
if ((parse_res = _nss_nisplus_parse_protoent (result, proto, buffer, buflen)) == -1) { nis_freeresult (result); result = saved_res; return NSS_STATUS_TRYAGAIN; } else { if (saved_res) nis_freeresult (saved_res); }
internal_nisplus_getprotoent_r (struct protoent *proto, char *buffer,				size_t buflen){  int parse_res;  /* Get the next entry until we found a correct one. */  do    {      if (result == NULL)	{	  if (tablename_val == NULL)	    if (_nss_create_tablename () != NSS_STATUS_SUCCESS)	      return NSS_STATUS_UNAVAIL;	  result = nis_first_entry (tablename_val);	  if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)	    return niserr2nss (result->status);	}      else	{	  nis_result *res;	  res = nis_next_entry (tablename_val, &result->cookie);	  nis_freeresult (result);	  result = res;	  if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)	    return niserr2nss (result->status);	}      parse_res = _nss_nisplus_parse_protoent (result, proto, buffer, buflen);    }  while (!parse_res);  return NSS_STATUS_SUCCESS;}