+ OM_uint32 major, tmpMinor;
+
+ *minor = 0;
+ *mech_types = GSS_C_NO_OID_SET;
+
+ if (input_name != GSS_C_NO_NAME &&
+ input_name->mechanismUsed != GSS_C_NO_OID) {
+ major = gss_create_empty_oid_set(minor, mech_types);
+ if (GSS_ERROR(major))
+ return major;
+
+ major = gss_add_oid_set_member(minor,
+ input_name->mechanismUsed,
+ mech_types);
+ if (GSS_ERROR(major)) {
+ gss_release_oid_set(&tmpMinor, mech_types);
+ return major;
+ }
+ } else {
+ major = gssEapIndicateMechs(minor, mech_types);
+ if (GSS_ERROR(major))
+ return major;
+ }
+
+ return major;