cleanup initialistaion pattern
authorLuke Howard <lukeh@padl.com>
Sat, 18 Sep 2010 11:04:22 +0000 (13:04 +0200)
committerLuke Howard <lukeh@padl.com>
Sat, 18 Sep 2010 11:04:22 +0000 (13:04 +0200)
mech_eap/util_attr.h
mech_eap/util_radius.cpp
mech_eap/util_saml.cpp
mech_eap/util_shib.cpp

index 6141658..3e92cd9 100644 (file)
@@ -51,19 +51,23 @@ public:
     gss_eap_attr_provider(void) {}
     virtual ~gss_eap_attr_provider(void) {}
 
-    virtual bool initFromExistingContext(const gss_eap_attr_ctx *source,
-                                         const gss_eap_attr_provider *ctx)
+    bool initWithSource(const gss_eap_attr_ctx *source)
     {
         m_source = source;
         return true;
     }
 
+    virtual bool initFromExistingContext(const gss_eap_attr_ctx *source,
+                                         const gss_eap_attr_provider *ctx)
+    {
+        return initWithSource(source);
+    }
+
     virtual bool initFromGssContext(const gss_eap_attr_ctx *source,
                                     const gss_cred_id_t cred,
                                     const gss_ctx_id_t ctx)
     {
-        m_source = source;
-        return true;
+        return initWithSource(source);
     }
 
     typedef bool
@@ -93,8 +97,11 @@ public:
                                        gss_any_t input) const {}
 
     virtual void exportToBuffer(gss_buffer_t buffer) const {}
-    virtual bool initFromBuffer(const gss_eap_attr_ctx *ctx,
-                                const gss_buffer_t buffer) { return false; }
+    virtual bool initFromBuffer(const gss_eap_attr_ctx *source,
+                                const gss_buffer_t buffer)
+    {
+        return initWithSource(source);
+    }
 
     static bool init() { return true; }
     static void finalize() {}
index 1440d4c..fbb0835 100644 (file)
@@ -119,6 +119,9 @@ bool
 gss_eap_radius_attr_provider::initFromBuffer(const gss_eap_attr_ctx *ctx,
                                              const gss_buffer_t buffer)
 {
+    if (!gss_eap_attr_provider::initFromBuffer(ctx, buffer))
+        return false;
+
     return false;
 }
 
index 03ccb4e..7310c7f 100644 (file)
@@ -246,6 +246,9 @@ bool
 gss_eap_saml_assertion_provider::initFromBuffer(const gss_eap_attr_ctx *ctx,
                                                 const gss_buffer_t buffer)
 {
+    if (!gss_eap_attr_provider::initFromBuffer(ctx, buffer))
+        return false;
+
     assert(m_assertion == NULL);
 
     if (buffer->length == 0)
index 596521b..a902664 100644 (file)
@@ -348,6 +348,9 @@ bool
 gss_eap_shib_attr_provider::initFromBuffer(const gss_eap_attr_ctx *ctx,
                                            const gss_buffer_t buffer)
 {
+    if (!gss_eap_attr_provider::initFromBuffer(ctx, buffer))
+        return false;
+
     return true;
 }