]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Handle rcode from previous async call
authorNick Porter <nick@portercomputing.co.uk>
Fri, 8 Sep 2023 10:01:08 +0000 (11:01 +0100)
committerNick Porter <nick@portercomputing.co.uk>
Fri, 8 Sep 2023 10:01:08 +0000 (11:01 +0100)
src/modules/rlm_ldap/rlm_ldap.c

index d2c594211e50d77f4fa007863a38ea34cdaac90d..f4d2a4011181124da8a330bc00bffe1c0c4e5801 100644 (file)
@@ -1424,6 +1424,22 @@ static unlang_action_t mod_authorize_resume(rlm_rcode_t *p_result, UNUSED int *p
        rlm_rcode_t             rcode = RLM_MODULE_OK;
        LDAP                    *handle = fr_ldap_handle_thread_local();
 
+       /*
+        *      If a previous async call returned one of the "failure" results just return.
+        */
+       switch (*p_result) {
+       case RLM_MODULE_REJECT:
+       case RLM_MODULE_FAIL:
+       case RLM_MODULE_HANDLED:
+       case RLM_MODULE_INVALID:
+       case RLM_MODULE_DISALLOW:
+               rcode = *p_result;
+               goto finish;
+
+       default:
+               break;
+       }
+
        switch (autz_ctx->status) {
        case LDAP_AUTZ_FIND:
                /*