X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=inquire_names_for_mech.c;h=8ceaa891364e0487bd2d5b22ead0d2e4bd7efb46;hb=15c93f06ee6ddefa7e7b095351f6e66698c7cc9e;hp=fe3c64ea5c67a5717ff32f571c24301509d979c0;hpb=c14382b8ecf6a00d8f38739abc4f9c9f14950b1a;p=mech_eap.git diff --git a/inquire_names_for_mech.c b/inquire_names_for_mech.c index fe3c64e..8ceaa89 100644 --- a/inquire_names_for_mech.c +++ b/inquire_names_for_mech.c @@ -35,38 +35,38 @@ OM_uint32 gss_inquire_names_for_mech(OM_uint32 *minor, gss_OID mechanism, - gss_OID_set *name_types) + gss_OID_set *ret_name_types) { OM_uint32 major, tmpMinor; + gss_OID nameTypes[] = { + GSS_C_NT_USER_NAME, + GSS_C_NT_HOSTBASED_SERVICE, + GSS_C_NT_EXPORT_NAME, +#ifdef HAVE_GSS_C_NT_COMPOSITE_EXPORT + GSS_C_NT_COMPOSITE_EXPORT, +#endif + GSS_EAP_NT_PRINCIPAL_NAME, + }; + size_t i; if (!gssEapIsMechanismOid(mechanism)) { *minor = 0; return GSS_S_BAD_MECH; } - major = gss_create_empty_oid_set(minor, name_types); + major = gss_create_empty_oid_set(minor, ret_name_types); if (GSS_ERROR(major)) goto cleanup; - major = gss_add_oid_set_member(minor, GSS_C_NT_USER_NAME, name_types); - if (GSS_ERROR(major)) - goto cleanup; - - major = gss_add_oid_set_member(minor, GSS_C_NT_HOSTBASED_SERVICE, name_types); - if (GSS_ERROR(major)) - goto cleanup; - - major = gss_add_oid_set_member(minor, GSS_C_NT_EXPORT_NAME, name_types); - if (GSS_ERROR(major)) - goto cleanup; - - major = gss_add_oid_set_member(minor, GSS_EAP_NT_PRINCIPAL_NAME, name_types); - if (GSS_ERROR(major)) - goto cleanup; + for (i = 0; i < sizeof(nameTypes)/sizeof(nameTypes[0]); i++) { + major = gss_add_oid_set_member(minor, nameTypes[i], ret_name_types); + if (GSS_ERROR(major)) + goto cleanup; + } cleanup: if (GSS_ERROR(major)) - gss_release_oid_set(&tmpMinor, name_types); + gss_release_oid_set(&tmpMinor, ret_name_types); return major; }