summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2017-06-28 14:53:49 +0200
committerAndreas Schneider <asn@cryptomilk.org>2017-07-25 13:51:07 +0200
commiteee973a6aee5c1298c1dfed12fced34f3deeaf85 (patch)
treeba44ef09fe33ee5e069cc2d50ef039a98f652715
parentdc074180be692d2cfe36e70edae96b1c28e1a094 (diff)
downloadsamba-eee973a6aee5c1298c1dfed12fced34f3deeaf85.tar.gz
auth/spnego: make use of GENSEC_UPDATE_IS_NTERROR() in gensec_spnego_update_send()
Check with git show -U15 Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
-rw-r--r--auth/gensec/spnego.c31
1 files changed, 14 insertions, 17 deletions
diff --git a/auth/gensec/spnego.c b/auth/gensec/spnego.c
index cec44bc1e2b..fe819ad749f 100644
--- a/auth/gensec/spnego.c
+++ b/auth/gensec/spnego.c
@@ -1245,15 +1245,12 @@ static struct tevent_req *gensec_spnego_update_send(TALLOC_CTX *mem_ctx,
status = gensec_spnego_update_out(gensec_security,
state, &state->out);
- state->status = status;
- if (NT_STATUS_EQUAL(status, NT_STATUS_MORE_PROCESSING_REQUIRED)) {
- tevent_req_done(req);
- return tevent_req_post(req, ev);
- }
- if (tevent_req_nterror(req, status)) {
+ if (GENSEC_UPDATE_IS_NTERROR(status)) {
+ tevent_req_nterror(req, status);
return tevent_req_post(req, ev);
}
+ state->status = status;
tevent_req_done(req);
return tevent_req_post(req, ev);
}
@@ -1390,6 +1387,11 @@ static struct tevent_req *gensec_spnego_update_send(TALLOC_CTX *mem_ctx,
return NULL;
}
+ if (GENSEC_UPDATE_IS_NTERROR(status)) {
+ tevent_req_nterror(req, status);
+ return tevent_req_post(req, ev);
+ }
+
if (NT_STATUS_IS_OK(status)) {
bool reset_full = true;
@@ -1397,26 +1399,21 @@ static struct tevent_req *gensec_spnego_update_send(TALLOC_CTX *mem_ctx,
status = gensec_may_reset_crypto(spnego_state->sub_sec_security,
reset_full);
- }
- if (!NT_STATUS_IS_OK(status) &&
- !NT_STATUS_EQUAL(status, NT_STATUS_MORE_PROCESSING_REQUIRED)) {
- tevent_req_nterror(req, status);
- return tevent_req_post(req, ev);
+ if (tevent_req_nterror(req, status)) {
+ return tevent_req_post(req, ev);
+ }
}
spnego_state->out_status = status;
status = gensec_spnego_update_out(gensec_security,
state, &state->out);
- state->status = status;
- if (NT_STATUS_EQUAL(status, NT_STATUS_MORE_PROCESSING_REQUIRED)) {
- tevent_req_done(req);
- return tevent_req_post(req, ev);
- }
- if (tevent_req_nterror(req, status)) {
+ if (GENSEC_UPDATE_IS_NTERROR(status)) {
+ tevent_req_nterror(req, status);
return tevent_req_post(req, ev);
}
+ state->status = status;
tevent_req_done(req);
return tevent_req_post(req, ev);
}