use shibresolver API properly
[mech_eap.orig] / util_saml.cpp
index 0733fa9..115824f 100644 (file)
@@ -154,8 +154,15 @@ bool
 gss_eap_saml_assertion_provider::getAttributeTypes(gss_eap_attr_enumeration_cb addAttribute,
                                                    void *data) const
 {
+    bool ret;
+
     /* just add the prefix */
-    return addAttribute(this, GSS_C_NO_BUFFER, data);
+    if (m_assertion != NULL)
+        ret = addAttribute(this, GSS_C_NO_BUFFER, data);
+    else
+        ret = true;
+
+    return ret;
 }
 
 void
@@ -549,3 +556,21 @@ gss_eap_saml_attr_provider::createAttrContext(void)
 {
     return new gss_eap_saml_attr_provider;
 }
+
+OM_uint32
+gssEapSamlAttrProvidersInit(OM_uint32 *minor)
+{
+    if (gss_eap_saml_assertion_provider::init() &&
+        gss_eap_saml_attr_provider::init())
+        return GSS_S_COMPLETE;
+
+    return GSS_S_FAILURE;
+}
+
+OM_uint32
+gssEapSamlAttrProvidersFinalize(OM_uint32 *minor)
+{
+    gss_eap_saml_attr_provider::finalize();
+    gss_eap_saml_assertion_provider::finalize();
+    return GSS_S_COMPLETE;
+}