]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Add profile fallthrough options to rlm_ldap
authorNick Porter <nick@portercomputing.co.uk>
Wed, 26 Feb 2025 20:14:10 +0000 (20:14 +0000)
committerNick Porter <nick@portercomputing.co.uk>
Thu, 27 Feb 2025 13:51:25 +0000 (13:51 +0000)
src/modules/rlm_ldap/rlm_ldap.c
src/modules/rlm_ldap/rlm_ldap.h

index 951b19b2b8c467e4da413ff61ad414a01a11cbb2..15a92ffa20750a2cf787d4f14f66a0f7b908d28a 100644 (file)
@@ -101,6 +101,8 @@ static conf_parser_t profile_config[] = {
        { FR_CONF_OFFSET("attribute_suspend", rlm_ldap_t, profile.attr_suspend) },
        { FR_CONF_OFFSET("check_attribute", rlm_ldap_t, profile.check_attr) },
        { FR_CONF_OFFSET("sort_by", rlm_ldap_t, profile.obj_sort_by) },
+       { FR_CONF_OFFSET("fallthrough_attribute", rlm_ldap_t, profile.fallthrough_attr) },
+       { FR_CONF_OFFSET("fallthrough_default", rlm_ldap_t, profile.fallthrough_def), .dflt = "yes" },
        CONF_PARSER_TERMINATOR
 };
 
index 0007de35af1a7c99842f275f06fcc93aeaff575f..5304a9729ac67f399c5fe0d62ee3350fad3338da 100644 (file)
@@ -106,6 +106,10 @@ typedef struct {
                LDAPControl     *obj_sort_ctrl;                 //!< Server side sort control
                char const      *check_attr;                    //!< LDAP attribute containing check conditions to determine if
                                                                //!< the profile should be applied
+               char const      *fallthrough_attr;              //!< LDAP attribute containing conditions to determine if
+                                                               ///< processing should continue to the next profile when more
+                                                               ///< than one is returned.
+               bool            fallthrough_def;                //!< Should profile processing fall through by default.
        } profile;
 
 #ifdef WITH_EDIR