comment out dumping code
[mech_eap.orig] / inquire_attrs_for_mech.c
index 96f1a8c..8c1bf12 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, JANET(UK)
+ * Copyright (c) 2011, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * SUCH DAMAGE.
  */
 
+/*
+ * Enumerate the features supported by the GSS EAP mechanism.
+ */
+
 #include "gssapiP_eap.h"
 
 #define MA_ADD(ma, set)    do { \
@@ -53,7 +57,17 @@ gss_inquire_attrs_for_mech(OM_uint32 *minor,
 {
     OM_uint32 major, tmpMinor;
 
-    if (mech_attrs != GSS_C_NO_OID_SET) {
+    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))
             goto cleanup;
@@ -67,7 +81,6 @@ gss_inquire_attrs_for_mech(OM_uint32 *minor,
         MA_SUPPORTED(GSS_C_MA_AUTH_INIT);
         MA_SUPPORTED(GSS_C_MA_AUTH_TARG);
         MA_SUPPORTED(GSS_C_MA_AUTH_INIT_INIT);
-        MA_SUPPORTED(GSS_C_MA_DELEG_CRED);
         MA_SUPPORTED(GSS_C_MA_INTEG_PROT);
         MA_SUPPORTED(GSS_C_MA_CONF_PROT);
         MA_SUPPORTED(GSS_C_MA_MIC);
@@ -79,7 +92,7 @@ gss_inquire_attrs_for_mech(OM_uint32 *minor,
 #endif
     }
 
-    if (known_mech_attrs != GSS_C_NO_OID_SET) {
+    if (known_mech_attrs != NULL) {
         major = gss_create_empty_oid_set(minor, known_mech_attrs);
         if (GSS_ERROR(major))
             goto cleanup;
@@ -115,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);