cleanup
[cyrus-sasl.git] / mech_eap / util_shib.h
index c7b6072..c57d9aa 100644 (file)
@@ -33,6 +33,8 @@
 #ifndef _UTIL_SHIB_H_
 #define _UTIL_SHIB_H_ 1
 
+#ifdef __cplusplus
+
 #include <vector>
 
 namespace shibsp {
@@ -43,13 +45,13 @@ namespace shibresolver {
     class ShibbolethResolver;
 };
 
-struct gss_eap_shib_attr_source : gss_eap_attr_source {
+struct gss_eap_shib_attr_provider : gss_eap_attr_provider {
 public:
-    gss_eap_shib_attr_source(void) {}
-    ~gss_eap_shib_attr_source(void);
+    gss_eap_shib_attr_provider(void);
+    ~gss_eap_shib_attr_provider(void);
 
     bool initFromExistingContext(const gss_eap_attr_ctx *source,
-                                 const gss_eap_attr_source *ctx);
+                                 const gss_eap_attr_provider *ctx);
     bool initFromGssContext(const gss_eap_attr_ctx *source,
                             const gss_cred_id_t cred,
                             const gss_ctx_id_t ctx);
@@ -74,11 +76,10 @@ public:
     bool initFromBuffer(const gss_eap_attr_ctx *ctx,
                         const gss_buffer_t buffer);
 
+    static bool init(void);
+    static void finalize(void);
 
-    static bool init();
-    static void finalize();
-
-    static gss_eap_attr_source *createAttrContext(void);
+    static gss_eap_attr_provider *createAttrContext(void);
 
 private:
     static shibsp::Attribute *
@@ -93,12 +94,26 @@ private:
         return m_attributes;
     }
 
+    bool authenticated(void) const { return m_authenticated; }
+
     friend bool
-    addRadiusAttribute(const gss_eap_attr_source *provider,
+    addRadiusAttribute(const gss_eap_attr_provider *source,
                        const gss_buffer_t attribute,
                        void *data);
 
-    mutable std::vector<shibsp::Attribute *> m_attributes;
+    std::vector<shibsp::Attribute *> m_attributes;
+    int m_authenticated;
 };
 
+
+extern "C" {
+#endif
+
+OM_uint32 gssEapLocalAttrProviderInit(OM_uint32 *minor);
+OM_uint32 gssEapLocalAttrProviderFinalize(OM_uint32 *minor);
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* _UTIL_SHIB_H_ */