From 1fac73929a728db6fb599f1b78636a5afcb11cc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Wed, 5 Jul 2006 22:36:49 +0000 Subject: [PATCH] if the underlaying mech doesn't support gss_indicate_mechs, use the oid in the mechswitch structure git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@17803 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/gssapi/mech/gss_indicate_mechs.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/gssapi/mech/gss_indicate_mechs.c b/lib/gssapi/mech/gss_indicate_mechs.c index 2ab69a051..38d524a8a 100644 --- a/lib/gssapi/mech/gss_indicate_mechs.c +++ b/lib/gssapi/mech/gss_indicate_mechs.c @@ -45,13 +45,19 @@ gss_indicate_mechs(OM_uint32 *minor_status, return (major_status); SLIST_FOREACH(m, &_gss_mechs, gm_link) { - major_status = m->gm_mech.gm_indicate_mechs(minor_status, &set); - if (major_status) - continue; - for (i = 0; i < set->count; i++) - major_status = gss_add_oid_set_member(minor_status, - &set->elements[i], mech_set); - gss_release_oid_set(minor_status, &set); + if (m->gm_mech.gm_indicate_mechs) { + major_status = m->gm_mech.gm_indicate_mechs( + minor_status, &set); + if (major_status) + continue; + for (i = 0; i < set->count; i++) + major_status = gss_add_oid_set_member( + minor_status, &set->elements[i], mech_set); + gss_release_oid_set(minor_status, &set); + } else { + major_status = gss_add_oid_set_member( + minor_status, &m->gm_mech_oid, mech_set); + } } *minor_status = 0;