summaryrefslogtreecommitdiff
path: root/auth
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2017-05-11 13:16:16 +0200
committerAndreas Schneider <asn@cryptomilk.org>2017-07-25 13:51:12 +0200
commita7f401243cb179dc3af6c6084474785ad189307a (patch)
tree2322659a91643bb67a0612e2346d66e4acf6a499 /auth
parent8268374c8307170f03b149a8fa7ed049c21889bf (diff)
downloadsamba-a7f401243cb179dc3af6c6084474785ad189307a.tar.gz
auth/gensec: make use of gensec_update_send/recv in gensec_update_ev()
Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
Diffstat (limited to 'auth')
-rw-r--r--auth/gensec/gensec.c22
1 files changed, 2 insertions, 20 deletions
diff --git a/auth/gensec/gensec.c b/auth/gensec/gensec.c
index 6569c72ea25..6a747ca3601 100644
--- a/auth/gensec/gensec.c
+++ b/auth/gensec/gensec.c
@@ -325,15 +325,10 @@ _PUBLIC_ NTSTATUS gensec_update_ev(struct gensec_security *gensec_security,
const DATA_BLOB in, DATA_BLOB *out)
{
NTSTATUS status;
- const struct gensec_security_ops *ops = gensec_security->ops;
TALLOC_CTX *frame = NULL;
struct tevent_req *subreq = NULL;
bool ok;
- if (gensec_security->child_security != NULL) {
- return NT_STATUS_INVALID_PARAMETER;
- }
-
frame = talloc_stackframe();
if (ev == NULL) {
@@ -350,7 +345,7 @@ _PUBLIC_ NTSTATUS gensec_update_ev(struct gensec_security *gensec_security,
tevent_loop_allow_nesting(ev);
}
- subreq = ops->update_send(frame, ev, gensec_security, in);
+ subreq = gensec_update_send(frame, ev, gensec_security, in);
if (subreq == NULL) {
status = NT_STATUS_NO_MEMORY;
goto fail;
@@ -359,20 +354,7 @@ _PUBLIC_ NTSTATUS gensec_update_ev(struct gensec_security *gensec_security,
if (!ok) {
goto fail;
}
- status = ops->update_recv(subreq, out_mem_ctx, out);
- if (!NT_STATUS_IS_OK(status)) {
- goto fail;
- }
-
- /*
- * Because callers using the
- * gensec_start_mech_by_auth_type() never call
- * gensec_want_feature(), it isn't sensible for them
- * to have to call gensec_have_feature() manually, and
- * these are not points of negotiation, but are
- * asserted by the client
- */
- status = gensec_verify_features(gensec_security);
+ status = gensec_update_recv(subreq, out_mem_ctx, out);
fail:
TALLOC_FREE(frame);
return status;