make reauth support conditionaly compilable
[mech_eap.git] / export_sec_context.c
index 54e5781..f0d0c75 100644 (file)
@@ -37,13 +37,8 @@ gssEapExportPartialContext(OM_uint32 *minor,
                            gss_ctx_id_t ctx,
                            gss_buffer_t token)
 {
-    token->length = 0;
-    token->value = NULL;
-
-    /*
-     * The format of this token awaits definition by libradsec.
-     */
-    return GSS_S_COMPLETE;
+    /* XXX we also need to serialise the current server name */
+    return duplicateBuffer(minor, &ctx->acceptorCtx.state, token);
 }
 
 static OM_uint32
@@ -86,6 +81,8 @@ gssEapExportSecContext(OM_uint32 *minor,
      * contexts.
      */
     if (!CTX_IS_INITIATOR(ctx) && !CTX_IS_ESTABLISHED(ctx)) {
+        assert((ctx->flags & CTX_FLAG_KRB_REAUTH_GSS) == 0);
+
         major = gssEapExportPartialContext(minor, ctx, &partialCtx);
         if (GSS_ERROR(major))
             goto cleanup;
@@ -159,6 +156,9 @@ gss_export_sec_context(OM_uint32 *minor,
     OM_uint32 major, tmpMinor;
     gss_ctx_id_t ctx = *context_handle;
 
+    interprocess_token->length = 0;
+    interprocess_token->value = NULL;
+
     if (ctx == GSS_C_NO_CONTEXT)
         return GSS_S_NO_CONTEXT;