diff --git a/src/config.c b/src/config.c index 795ed8e..2d31a00 100644 --- a/src/config.c +++ b/src/config.c @@ -72,6 +72,9 @@ int parse_config(oal_config_t * const config, const char *file) { if (strncmp(key, "bindtimeout", 11) == 0) { config->bindtimeout = atoi(value); } else + if (strncmp(key, "referrals", 9) == 0) { + config->referrals = atoi(value); + } else if (strncmp(key, "basedn", 6) == 0) { config->basedn = strndup(value, valsize); } else diff --git a/src/config.h b/src/config.h index ecf3c11..e219d48 100644 --- a/src/config.h +++ b/src/config.h @@ -6,6 +6,7 @@ typedef struct { char *binddn; /** bind as this user before search for user */ char *bindpass; /** bind with this password */ size_t bindtimeout; /** bind timeout */ + short referrals; /** if > 0 - follow referals */ char *basedn; /** where to search for users */ char *userfilter; /** ldap filter for user entry */ char *error; /** parser error */ diff --git a/tests/parse_config.c b/tests/parse_config.c index d86eb82..686978f 100644 --- a/tests/parse_config.c +++ b/tests/parse_config.c @@ -16,6 +16,7 @@ int main(void) { } assert(config.bindtimeout == 5); + assert(config.referrals == 2); assert(strcmp(config.bindpass, "strong-password") == 0); assert(strcmp(config.bindurls, "ldap://127.0.0.1 ldaps://172.16.17.1") == 0); assert(strcmp(config.binddn, "cn=admin,dc=example,dc=com") == 0); diff --git a/tests/test.conf b/tests/test.conf index 07bf5b9..593068b 100644 --- a/tests/test.conf +++ b/tests/test.conf @@ -5,5 +5,7 @@ bindpass strong-password bindtimeout 5 # another comment and empty string below +referrals 2 + basedn ou=users,dc=example,dc=com userfilter (objectClass=inetOrgPerson)