/*
- * Copyright (c) 2010, JANET(UK)
+ * Copyright (c) 2011, JANET(UK)
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* SUCH DAMAGE.
*/
+/*
+ * Return context handle properties.
+ */
+
#include "gssapiP_eap.h"
OM_uint32
{
OM_uint32 major, tmpMinor;
- *minor = 0;
-
if (ctx == GSS_C_NO_CONTEXT) {
- major = GSS_S_NO_CONTEXT;
- goto cleanup;
+ *minor = EINVAL;
+ return GSS_S_CALL_INACCESSIBLE_READ | GSS_S_NO_CONTEXT;
}
+ GSSEAP_MUTEX_LOCK(&ctx->mutex);
+
if (src_name != NULL) {
major = gssEapDuplicateName(minor, ctx->initiatorName, src_name);
if (GSS_ERROR(major))
}
if (mech_type != NULL) {
- if (!gssEapInternalizeOid(ctx->mechanismUsed, mech_type)) {
- major = duplicateOid(minor, ctx->mechanismUsed, mech_type);
- if (GSS_ERROR(major))
- goto cleanup;
- }
+ major = gssEapCanonicalizeOid(minor, ctx->mechanismUsed, 0, mech_type);
+ if (GSS_ERROR(major))
+ goto cleanup;
}
if (ctx_flags != NULL) {
}
major = GSS_S_COMPLETE;
+ *minor = 0;
cleanup:
+ GSSEAP_MUTEX_UNLOCK(&ctx->mutex);
+
if (GSS_ERROR(major)) {
gssEapReleaseName(&tmpMinor, src_name);
gssEapReleaseName(&tmpMinor, targ_name);