remove @TARGET_LIBS@, they don't exist
[mech_eap.git] / inquire_attrs_for_mech.c
index 8a5cb19..dec08c8 100644 (file)
  * SUCH DAMAGE.
  */
 
+/*
+ * Enumerate the features supported by the GSS EAP mechanism.
+ */
+
 #include "gssapiP_eap.h"
 
 #define MA_ADD(ma, set)    do { \
@@ -53,6 +57,16 @@ gss_inquire_attrs_for_mech(OM_uint32 *minor,
 {
     OM_uint32 major, tmpMinor;
 
+    if (mech_attrs != NULL)
+        *mech_attrs = GSS_C_NO_OID_SET;
+    if (known_mech_attrs != NULL)
+        *known_mech_attrs = GSS_C_NO_OID_SET;
+
+    if (!gssEapIsConcreteMechanismOid((const gss_OID)mech_oid)) {
+        *minor = GSSEAP_WRONG_MECH;
+        return GSS_S_BAD_MECH;
+    }
+
     if (mech_attrs != NULL) {
         major = gss_create_empty_oid_set(minor, mech_attrs);
         if (GSS_ERROR(major))
@@ -114,6 +128,9 @@ gss_inquire_attrs_for_mech(OM_uint32 *minor,
 #endif
     }
 
+    major = GSS_S_COMPLETE;
+    *minor = 0;
+
 cleanup:
     if (GSS_ERROR(major)) {
         gss_release_oid_set(&tmpMinor, mech_attrs);