From 69332d4cce1cfb8d094e1cb3b82d9030907c5eb7 Mon Sep 17 00:00:00 2001 From: Luke Howard Date: Sat, 4 Jan 2014 13:02:40 +1100 Subject: [PATCH] GSS_S_PROMPTING_NEEDED support --- plugins/gs2.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/plugins/gs2.c b/plugins/gs2.c index 6e102ad..c04f99f 100644 --- a/plugins/gs2.c +++ b/plugins/gs2.c @@ -97,6 +97,10 @@ #define GS2_CB_FLAG_Y 0x02 #define GS2_NONSTD_FLAG 0x10 +#ifndef GSS_S_PROMPTING_NEEDED +#define GSS_S_PROMPTING_NEEDED (1 << (GSS_C_SUPPLEMENTARY_OFFSET + 5)) +#endif + typedef struct context { gss_ctx_id_t gss_ctx; gss_name_t client_name; @@ -834,7 +838,7 @@ cleanup: if (ret == SASL_OK && maj_stat != GSS_S_COMPLETE) { sasl_gs2_seterror(text->utils, maj_stat, min_stat); - ret = SASL_FAIL; + ret = (maj_stat == GSS_S_PROMPTING_NEEDED) ? SASL_INTERACT : SASL_FAIL; } if (ret < SASL_OK) sasl_gs2_free_context_contents(text); @@ -1704,7 +1708,7 @@ interact: cleanup: if (result == SASL_OK && maj_stat != GSS_S_COMPLETE) { sasl_gs2_seterror(text->utils, maj_stat, min_stat); - result = SASL_FAIL; + result = (maj_stat == GSS_S_PROMPTING_NEEDED) ? SASL_INTERACT : SASL_FAIL; } gss_release_buffer(&min_stat, &cred_authid); -- 2.1.4