summaryrefslogtreecommitdiffstats
path: root/src/lib/krb5/krb/princ_comp.c
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2013-04-06 01:23:40 -0400
committerGreg Hudson <ghudson@mit.edu>2013-04-08 13:14:36 -0400
commitcaaf72893a5be61822763eb471f4d573992479ed (patch)
tree32ac388752173725b92540d9eae0ae2cabc633ac /src/lib/krb5/krb/princ_comp.c
parent2defbe8939c1c11a9f76334443c63603a8b749bf (diff)
downloadkrb5-caaf72893a5be61822763eb471f4d573992479ed.tar.gz
krb5-caaf72893a5be61822763eb471f4d573992479ed.tar.xz
krb5-caaf72893a5be61822763eb471f4d573992479ed.zip
Simplify principal access within libkrb5
For conciseness, directly use fields of krb5_principal objects instead of using the accessor macros.
Diffstat (limited to 'src/lib/krb5/krb/princ_comp.c')
-rw-r--r--src/lib/krb5/krb/princ_comp.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/src/lib/krb5/krb/princ_comp.c b/src/lib/krb5/krb/princ_comp.c
index db0d3058c1..994f41d45c 100644
--- a/src/lib/krb5/krb/princ_comp.c
+++ b/src/lib/krb5/krb/princ_comp.c
@@ -33,8 +33,8 @@ realm_compare_flags(krb5_context context,
krb5_const_principal princ2,
int flags)
{
- const krb5_data *realm1 = krb5_princ_realm(context, princ1);
- const krb5_data *realm2 = krb5_princ_realm(context, princ2);
+ const krb5_data *realm1 = &princ1->realm;
+ const krb5_data *realm2 = &princ2->realm;
if (realm1->length != realm2->length)
return FALSE;
@@ -79,8 +79,7 @@ krb5_principal_compare_flags(krb5_context context,
krb5_const_principal princ2,
int flags)
{
- register int i;
- krb5_int32 nelem;
+ krb5_int32 i;
unsigned int utf8 = (flags & KRB5_PRINCIPAL_COMPARE_UTF8) != 0;
unsigned int casefold = (flags & KRB5_PRINCIPAL_COMPARE_CASEFOLD) != 0;
krb5_principal upn1 = NULL;
@@ -89,27 +88,26 @@ krb5_principal_compare_flags(krb5_context context,
if (flags & KRB5_PRINCIPAL_COMPARE_ENTERPRISE) {
/* Treat UPNs as if they were real principals */
- if (krb5_princ_type(context, princ1) == KRB5_NT_ENTERPRISE_PRINCIPAL) {
+ if (princ1->type == KRB5_NT_ENTERPRISE_PRINCIPAL) {
if (upn_to_principal(context, princ1, &upn1) == 0)
princ1 = upn1;
}
- if (krb5_princ_type(context, princ2) == KRB5_NT_ENTERPRISE_PRINCIPAL) {
+ if (princ2->type == KRB5_NT_ENTERPRISE_PRINCIPAL) {
if (upn_to_principal(context, princ2, &upn2) == 0)
princ2 = upn2;
}
}
- nelem = krb5_princ_size(context, princ1);
- if (nelem != krb5_princ_size(context, princ2))
+ if (princ1->length != princ2->length)
goto out;
if ((flags & KRB5_PRINCIPAL_COMPARE_IGNORE_REALM) == 0 &&
!realm_compare_flags(context, princ1, princ2, flags))
goto out;
- for (i = 0; i < (int) nelem; i++) {
- const krb5_data *p1 = krb5_princ_component(context, princ1, i);
- const krb5_data *p2 = krb5_princ_component(context, princ2, i);
+ for (i = 0; i < princ1->length; i++) {
+ const krb5_data *p1 = &princ1->data[i];
+ const krb5_data *p2 = &princ2->data[i];
krb5_boolean eq;
if (casefold) {