Heimdal portability fixes (except for reauth)
[mech_eap.git] / util_attr.h
index 9dd4787..01f8e2f 100644 (file)
 #ifndef _UTIL_ATTR_H_
 #define _UTIL_ATTR_H_ 1
 
+#ifdef HAVE_HEIMDAL_VERSION
+/* Removed in draft-ietf-kitten-gssapi-naming-exts-08 */
+typedef struct gss_any *gss_any_t;
+#endif
+
 #ifdef __cplusplus
 #include <string>
+#include <new>
 
 struct gss_eap_attr_provider;
 struct gss_eap_attr_ctx;
@@ -116,6 +122,9 @@ public:
 
     virtual time_t getExpiryTime(void) const { return 0; }
 
+    virtual OM_uint32 mapException(OM_uint32 *minor, std::exception &e) const
+    { return GSS_S_CONTINUE_NEEDED; }
+
     static bool init(void) { return true; }
     static void finalize(void) {}
 
@@ -208,6 +217,7 @@ public:
     unregisterProvider(unsigned int type);
 
     time_t getExpiryTime(void) const;
+    OM_uint32 mapException(OM_uint32 *minor, std::exception &e) const;
 
 private:
     bool providerEnabled(unsigned int type) const;
@@ -231,9 +241,6 @@ private:
 
 #ifdef __cplusplus
 
-#include <string>
-#include <new>
-
 static inline void
 duplicateBuffer(gss_buffer_desc &src, gss_buffer_t dst)
 {
@@ -268,9 +275,12 @@ extern "C" {
  * obtain the name mutex.
  */
 
-struct gss_eap_attr_ctx *
-gssEapCreateAttrContext(gss_cred_id_t acceptorCred,
-                        gss_ctx_id_t acceptorCtx);
+OM_uint32
+gssEapCreateAttrContext(OM_uint32 *minor,
+                        gss_cred_id_t acceptorCred,
+                        gss_ctx_id_t acceptorCtx,
+                        struct gss_eap_attr_ctx **pAttrCtx,
+                        time_t *pExpiryTime);
 
 OM_uint32
 gssEapInquireName(OM_uint32 *minor,