Ejemplo n.º 1
0
static NSS_STATUS
_nss_ldap_parse_proto (LDAPMessage * e,
		       ldap_state_t * pvt,
		       void *result, char *buffer, size_t buflen)
{

  struct protoent *proto = (struct protoent *) result;
  char *number;
  NSS_STATUS stat;

  stat =
    _nss_ldap_getrdnvalue (e, ATM (LM_PROTOCOLS, cn), &proto->p_name,
                           &buffer, &buflen);
  if (stat != NSS_SUCCESS)
    return stat;

  stat =
    _nss_ldap_assign_attrval (e, AT (ipProtocolNumber), &number, &buffer,
			      &buflen);
  if (stat != NSS_SUCCESS)
    return stat;

  proto->p_proto = atoi (number);

  stat =
    _nss_ldap_assign_attrvals (e, ATM (LM_PROTOCOLS, cn), proto->p_name,
			       &proto->p_aliases, &buffer, &buflen, NULL);
  if (stat != NSS_SUCCESS)
    return stat;

  return NSS_SUCCESS;
}
Ejemplo n.º 2
0
static NSS_STATUS
_nss_ldap_parse_automount (LDAPMessage * e,
			   ldap_state_t * pvt,
			   void *result, char *buffer, size_t buflen)
{
  NSS_STATUS stat;
  char ***keyval = result;

  stat = 
    _nss_ldap_assign_attrval (e, AT (automountKey), keyval[0],
			      &buffer, &buflen);
  if (stat != NSS_SUCCESS)
    return stat;

  stat = 
    _nss_ldap_assign_attrval (e, AT (automountInformation), keyval[1],
			      &buffer, &buflen);
  if (stat != NSS_SUCCESS)
    return stat;

  return NSS_SUCCESS;
}
Ejemplo n.º 3
0
static NSS_STATUS
_nss_ldap_parse_sp (LDAPMessage * e,
		    ldap_state_t * pvt,
		    void *result, char *buffer, size_t buflen)
{
  struct spwd *sp = (struct spwd *) result;
  NSS_STATUS stat;
  char *tmp = NULL;

  stat =
    _nss_ldap_assign_userpassword (e, ATM (LM_SHADOW, userPassword),
                                   &sp->sp_pwdp, &buffer, &buflen);
  if (stat != NSS_SUCCESS)
    return stat;

  stat =
    _nss_ldap_assign_attrval (e, ATM (LM_SHADOW, uid), &sp->sp_namp, &buffer,
			      &buflen);
  if (stat != NSS_SUCCESS)
    return stat;

  stat =
    _nss_ldap_assign_attrval (e, AT (shadowLastChange), &tmp, &buffer,
			      &buflen);
  if (stat == NSS_SUCCESS)
    _nss_ldap_shadow_date (tmp, -1, &sp->sp_lstchg);
  else
    sp->sp_lstchg = -1;

  stat =
    _nss_ldap_assign_attrval (e, AT (shadowMax), &tmp, &buffer, &buflen);
  if (stat == NSS_SUCCESS)
    _nss_ldap_parse_long (tmp, -1, &sp->sp_max);
  else
    sp->sp_max = -1;

  stat =
    _nss_ldap_assign_attrval (e, AT (shadowMin), &tmp, &buffer, &buflen);
  if (stat == NSS_SUCCESS)
    _nss_ldap_parse_long (tmp, -1, &sp->sp_min);
  else
    sp->sp_min = -1;

  stat =
    _nss_ldap_assign_attrval (e, AT (shadowWarning), &tmp, &buffer,
			      &buflen);
  if (stat == NSS_SUCCESS)
    _nss_ldap_parse_long (tmp, -1, &sp->sp_warn);
  else
    sp->sp_warn = -1;

  stat =
    _nss_ldap_assign_attrval (e, AT (shadowInactive), &tmp, &buffer,
			      &buflen);
  if (stat == NSS_SUCCESS)
    _nss_ldap_parse_long (tmp, -1, &sp->sp_inact);
  else
    sp->sp_inact = -1;

  stat =
    _nss_ldap_assign_attrval (e, AT (shadowExpire), &tmp, &buffer,
			      &buflen);
  if (stat == NSS_SUCCESS)
    _nss_ldap_shadow_date (tmp, -1, &sp->sp_expire);
  else
    sp->sp_expire = -1;

  stat =
    _nss_ldap_assign_attrval (e, AT (shadowFlag), &tmp, &buffer, &buflen);
  if (stat == NSS_SUCCESS)
    _nss_ldap_parse_ulong (tmp, -1, &sp->sp_flag);
  else
    sp->sp_flag = -1;

  _nss_ldap_shadow_handle_flag(sp);

  return NSS_SUCCESS;
}