Example #1
0
int
setnetgrent (const char *group)
{
  int result;

  __libc_lock_lock (lock);

  if (__nss_not_use_nscd_netgroup > 0
      && ++__nss_not_use_nscd_netgroup > NSS_NSCD_RETRY)
    __nss_not_use_nscd_netgroup = 0;

  if (!__nss_not_use_nscd_netgroup
      && !__nss_database_custom[NSS_DBSIDX_netgroup])
    {
      result = __nscd_setnetgrent (group, &dataset);
      if (result >= 0)
	goto out;
    }

  result = internal_setnetgrent (group, &dataset);

 out:
  __libc_lock_unlock (lock);

  return result;
}
Example #2
0
static int
nscd_setnetgrent (const char *group)
{
#ifdef USE_NSCD
  if (__nss_not_use_nscd_netgroup > 0
      && ++__nss_not_use_nscd_netgroup > NSS_NSCD_RETRY)
    __nss_not_use_nscd_netgroup = 0;

  if (!__nss_not_use_nscd_netgroup
      && !__nss_database_custom[NSS_DBSIDX_netgroup])
    return __nscd_setnetgrent (group, &dataset);
#endif
  return -1;
}