Exemple #1
0
EntityRank MetaData::entity_rank( const std::string &name ) const
{
  EntityRank entity_rank = InvalidEntityRank;

  for (size_t i = 0; i < m_entity_rank_names.size(); ++i)
    if (equal_case(name, m_entity_rank_names[i])) {
      entity_rank = i;
      break;
    }
  return entity_rank;
}
/* RFC 5280, section 7.5, requires that only the domain is compared in
   a case-insensitive manner. */
static int equal_email(const unsigned char *a, size_t a_len,
		       const unsigned char *b, size_t b_len)
	{
	size_t i = a_len;
	if (a_len != b_len)
		return 0;
	/* We search backwards for the '@' character, so that we do
	   not have to deal with quoted local-parts.  The domain part
	   is compared in a case-insensitive manner. */
	while (i > 0)
		{
		--i;
		if (a[i] == '@' || b[i] == '@')
			{
			if (!equal_nocase(a + i, a_len - i,
					  b + i, a_len - i))
				return 0;
			break;
			}
		}
	if (i == 0)
		i = a_len;
	return equal_case(a, i, b, i);
	}