X-Git-Url: http://www.project-moonshot.org/gitweb/?p=moonshot.git;a=blobdiff_plain;f=mech_eap%2Futil_attr.h;fp=mech_eap%2Futil_attr.h;h=6af4cf389228adbcd544bb563bb2690a9049c07e;hp=90a8c91c3c35c61f0cb06d808c45ea3995dc0887;hb=43146f6400fc19e112ed1a7c7d6e8dce3755f008;hpb=2b5e2d6fb69f4405c6a61a2bd4806f1c79e055da diff --git a/mech_eap/util_attr.h b/mech_eap/util_attr.h index 90a8c91..6af4cf3 100644 --- a/mech_eap/util_attr.h +++ b/mech_eap/util_attr.h @@ -45,7 +45,8 @@ struct gss_eap_attr_provider; struct gss_eap_attr_ctx; typedef bool -(*gss_eap_attr_enumeration_cb)(const gss_eap_attr_provider *source, +(*gss_eap_attr_enumeration_cb)(const gss_eap_attr_ctx *ctx, + const gss_eap_attr_provider *source, const gss_buffer_t attribute, void *data); @@ -125,6 +126,11 @@ public: { } + virtual const char *prefix(void) const + { + return NULL; + } + virtual void exportToBuffer(gss_buffer_t buffer GSSEAP_UNUSED) const { } @@ -194,12 +200,9 @@ public: void exportToBuffer(gss_buffer_t buffer) const; bool initFromBuffer(const gss_buffer_t buffer); - static unsigned int - attributePrefixToType(const gss_buffer_t prefix); - - static const gss_buffer_t - attributeTypeToPrefix(unsigned int type); - + static std::string + composeAttributeName(const gss_buffer_t prefix, + const gss_buffer_t suffix); static void decomposeAttributeName(const gss_buffer_t attribute, gss_buffer_t prefix, @@ -208,28 +211,23 @@ public: composeAttributeName(const gss_buffer_t prefix, const gss_buffer_t suffix, gss_buffer_t attribute); - static void + + std::string + composeAttributeName(unsigned int type, + const gss_buffer_t suffix); + void decomposeAttributeName(const gss_buffer_t attribute, unsigned int *type, - gss_buffer_t suffix); - static void + gss_buffer_t suffix) const; + void composeAttributeName(unsigned int type, const gss_buffer_t suffix, - gss_buffer_t attribute); - - static std::string - composeAttributeName(const gss_buffer_t prefix, - const gss_buffer_t suffix); - static std::string - composeAttributeName(unsigned int type, - const gss_buffer_t suffix); + gss_buffer_t attribute) const; gss_eap_attr_provider *getProvider(unsigned int type) const; - gss_eap_attr_provider *getProvider(const gss_buffer_t prefix) const; static void registerProvider(unsigned int type, - const char *prefix, gss_eap_attr_create_provider factory); static void unregisterProvider(unsigned int type); @@ -241,6 +239,9 @@ private: bool providerEnabled(unsigned int type) const; void releaseProvider(unsigned int type); + unsigned int attributePrefixToType(const gss_buffer_t prefix) const; + gss_buffer_desc attributeTypeToPrefix(unsigned int type) const; + gss_eap_attr_provider *getPrimaryProvider(void) const; /* make non-copyable */