]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
rlm_ldap: separare "noop" from "invalid".
authorJorge Pereira <jpereira@freeradius.org>
Thu, 4 Jul 2019 18:29:39 +0000 (15:29 -0300)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 4 Jul 2019 18:37:09 +0000 (14:37 -0400)
src/modules/rlm_ldap/groups.c

index f4dbf6cffcfe94c54b280cc9dcad5a22032297b7..2902b74e9fd7e654575994e4f04dccfd72ee4e1d 100644 (file)
@@ -224,7 +224,7 @@ static rlm_rcode_t rlm_ldap_group_dn2name(rlm_ldap_t const *inst, REQUEST *reque
 
        case LDAP_PROC_NO_RESULT:
                REDEBUG("Group DN \"%s\" did not resolve to an object", dn);
-               return RLM_MODULE_INVALID;
+               return RLM_MODULE_NOOP;
 
        default:
                return RLM_MODULE_FAIL;
@@ -359,6 +359,9 @@ rlm_rcode_t rlm_ldap_cacheable_userobj(rlm_ldap_t const *inst, REQUEST *request,
                                dn = fr_ldap_berval_to_string(value_ctx, values[i]);
                                rcode = rlm_ldap_group_dn2name(inst, request, pconn, dn, &name);
                                talloc_free(dn);
+
+                               if (rcode == RLM_MODULE_NOOP) continue;
+
                                if (rcode != RLM_MODULE_OK) {
                                        ldap_value_free_len(values);
                                        talloc_free(value_ctx);
@@ -747,6 +750,9 @@ rlm_rcode_t rlm_ldap_check_userobj_dynamic(rlm_ldap_t const *inst, REQUEST *requ
                        RINDENT();
                        ret = rlm_ldap_group_dn2name(inst, request, pconn, check->vp_strvalue, &resolved);
                        REXDENT();
+
+                       if (ret == RLM_MODULE_NOOP) continue;
+
                        if (ret != RLM_MODULE_OK) {
                                rcode = ret;
                                goto finish;
@@ -781,6 +787,9 @@ rlm_rcode_t rlm_ldap_check_userobj_dynamic(rlm_ldap_t const *inst, REQUEST *requ
                        ret = rlm_ldap_group_dn2name(inst, request, pconn, value, &resolved);
                        REXDENT();
                        talloc_free(value);
+
+                       if (ret == RLM_MODULE_NOOP) continue;
+
                        if (ret != RLM_MODULE_OK) {
                                rcode = ret;
                                goto finish;