/*
- * Copyright (c) 2010, JANET(UK)
+ * Copyright (c) 2011, JANET(UK)
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
const gss_name_t input_name,
gss_OID_set *mech_types)
{
- return gssEapIndicateMechs(minor, mech_types);
+ 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;
}