summaryrefslogtreecommitdiff
path: root/source4/auth/gensec/spnego.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2008-10-01 02:27:09 +0200
committerStefan Metzmacher <metze@samba.org>2008-10-06 19:21:44 +0200
commit999b69d176a967aad8b6a871632d1869757181aa (patch)
tree1730799d873fe1cd978b1d8a7585adb15f889466 /source4/auth/gensec/spnego.c
parentf4095b62a8030cb9d929bb113f3488f3917b8f9b (diff)
downloadsamba-999b69d176a967aad8b6a871632d1869757181aa.tar.gz
samba-999b69d176a967aad8b6a871632d1869757181aa.tar.bz2
samba-999b69d176a967aad8b6a871632d1869757181aa.zip
s4:gensec: pass down want_features to the spnego backend mech
metze
Diffstat (limited to 'source4/auth/gensec/spnego.c')
-rw-r--r--source4/auth/gensec/spnego.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/source4/auth/gensec/spnego.c b/source4/auth/gensec/spnego.c
index 1855e0583d..bf991616bd 100644
--- a/source4/auth/gensec/spnego.c
+++ b/source4/auth/gensec/spnego.c
@@ -1094,6 +1094,20 @@ static NTSTATUS gensec_spnego_update(struct gensec_security *gensec_security, TA
return NT_STATUS_INVALID_PARAMETER;
}
+static void gensec_spnego_want_feature(struct gensec_security *gensec_security,
+ uint32_t feature)
+{
+ struct spnego_state *spnego_state = (struct spnego_state *)gensec_security->private_data;
+
+ if (!spnego_state || !spnego_state->sub_sec_security) {
+ gensec_security->want_features |= feature;
+ return;
+ }
+
+ gensec_want_feature(spnego_state->sub_sec_security,
+ feature);
+}
+
static bool gensec_spnego_have_feature(struct gensec_security *gensec_security,
uint32_t feature)
{
@@ -1133,6 +1147,7 @@ static const struct gensec_security_ops gensec_spnego_security_ops = {
.unwrap_packets = gensec_spnego_unwrap_packets,
.session_key = gensec_spnego_session_key,
.session_info = gensec_spnego_session_info,
+ .want_feature = gensec_spnego_want_feature,
.have_feature = gensec_spnego_have_feature,
.enabled = true,
.priority = GENSEC_SPNEGO