]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Differentiate between login failure and module failure
authorNick Porter <nick@portercomputing.co.uk>
Thu, 16 Feb 2023 12:30:29 +0000 (12:30 +0000)
committerNick Porter <nick@portercomputing.co.uk>
Fri, 17 Feb 2023 11:13:33 +0000 (11:13 +0000)
src/modules/rlm_imap/rlm_imap.c

index eb82a17135d65aa26f9b07d6eca1eaed3f0df6c9..cbf00c788484d698f49a879c2dbf48987fb05876 100644 (file)
@@ -123,8 +123,15 @@ static unlang_action_t CC_HINT(nonnull) mod_authenticate_resume(rlm_rcode_t *p_r
        }
 
        if (randle->result != CURLE_OK) {
+               CURLcode result = randle->result;
                fr_imap_slab_release(randle);
-               RETURN_MODULE_REJECT;
+               switch(result) {
+               case CURLE_PEER_FAILED_VERIFICATION:
+               case CURLE_LOGIN_DENIED:
+                       RETURN_MODULE_REJECT;
+               default:
+                       RETURN_MODULE_FAIL;
+               }
        }
 
        if (tls->extract_cert_attrs) fr_curl_response_certinfo(request, randle);