ctx->gssFlags = gssFlags;
- *smFlags |= SM_FLAG_STOP_EVAL;
-
if (major == GSS_S_COMPLETE) {
major = gssEapReauthComplete(minor, ctx, cred, actualMech, timeRec);
if (GSS_ERROR(major))
goto cleanup;
- gssEapSmTransition(ctx, GSSEAP_STATE_ESTABLISHED);
+ GSSEAP_SM_TRANSITION(ctx, GSSEAP_STATE_ESTABLISHED);
} else {
- gssEapSmTransition(ctx, GSSEAP_STATE_REAUTHENTICATE);
+ GSSEAP_SM_TRANSITION(ctx, GSSEAP_STATE_REAUTHENTICATE);
}
cleanup:
return GSS_S_FAILURE;
}
+ GSSEAP_SM_TRANSITION_NEXT(ctx);
+
/* force sending of empty token */
*minor = 0;
- *smFlags |= SM_FLAG_TRANSITION | SM_FLAG_FORCE_SEND_TOKEN;
+ *smFlags |= SM_FLAG_FORCE_SEND_TOKEN;
return GSS_S_CONTINUE_NEEDED;
}
ctx->flags &= ~(CTX_FLAG_EAP_SUCCESS);
major = GSS_S_CONTINUE_NEEDED;
- *smFlags |= SM_FLAG_TRANSITION;
+ GSSEAP_SM_TRANSITION_NEXT(ctx);
} else if (ctx->flags & CTX_FLAG_EAP_FAIL) {
major = GSS_S_DEFECTIVE_CREDENTIAL;
*minor = GSSEAP_PEER_AUTH_FAILURE;
gss_buffer_t outputToken,
OM_uint32 *smFlags)
{
- *minor = 0;
+ GSSEAP_SM_TRANSITION_NEXT(ctx);
- *smFlags |= SM_FLAG_TRANSITION | SM_FLAG_STOP_EVAL;
+ *minor = 0;
+ *smFlags |= SM_FLAG_FORCE_SEND_TOKEN;
return GSS_S_CONTINUE_NEEDED;
}
gss_buffer_t outputToken,
OM_uint32 *smFlags)
{
- *minor = 0;
+ GSSEAP_SM_TRANSITION(ctx, GSSEAP_STATE_ESTABLISHED);
- gssEapSmTransition(ctx, GSSEAP_STATE_ESTABLISHED);
- *smFlags |= SM_FLAG_STOP_EVAL;
+ *minor = 0;
return GSS_S_COMPLETE;
}