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); }