More work on SAML code
[mech_eap.orig] / get_name_attribute.c
index 0987f15..3b22dc5 100644 (file)
@@ -67,21 +67,22 @@ gss_get_name_attribute(OM_uint32 *minor,
 
     type = gssEapAttributePrefixToType(&prefix);
     switch (type) {
-    case ATTR_TYPE_SAML_AAA_ASSERTION:
-        major = samlExportAssertion(minor, name->assertion, value);
-        break;
+    case ATTR_TYPE_NONE:
     case ATTR_TYPE_SAML_ATTR:
-        major = samlGetAttribute(minor, name->assertion, &suffix,
+        major = samlGetAttribute(minor, type, name,
+                                 (type == ATTR_TYPE_NONE) ? attr : &suffix,
                                  authenticated, complete,
                                  value, display_value, more);
         break;
+    case ATTR_TYPE_SAML_AAA_ASSERTION:
+        major = samlGetAssertion(minor, name, value);
+        break;
     case ATTR_TYPE_RADIUS_AVP:
-        major = radiusGetAVP(minor, name->avps, &suffix,
-                             authenticated, complete,
-                             value, display_value, more);
+        major = radiusGetAttribute(minor, name, &suffix,
+                                   authenticated, complete,
+                                   value, display_value, more);
         break;
     default:
-        *minor = ENOENT;
         major = GSS_S_UNAVAILABLE;
         break;
     }