From af47f87dec649ad495a704926d5e0e004ad17301 Mon Sep 17 00:00:00 2001 From: Alan Hicks Date: Wed, 12 Oct 2016 18:23:40 +0100 Subject: [PATCH 15/33] Get timeout from config --- src/modules/authldap.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git src/modules/authldap.c src/modules/authldap.c index bbe553b..2bf3b95 100644 --- src/modules/authldap.c +++ src/modules/authldap.c @@ -59,7 +59,9 @@ typedef struct _ldap_cfg { Field_T field_members; Field_T query_string; Field_T referrals; + Field_T query_timeout; int scope_int, port_int, version_int; + int query_timeout_int; } _ldap_cfg_t; static _ldap_cfg_t _ldap_cfg; @@ -90,6 +92,7 @@ static void __auth_get_config(void) GETCONFIGVALUE("QUERY_STRING", "LDAP", _ldap_cfg.query_string); GETCONFIGVALUE("SCOPE", "LDAP", _ldap_cfg.scope); GETCONFIGVALUE("REFERRALS", "LDAP", _ldap_cfg.referrals); + GETCONFIGVALUE("QUERY_TIMEOUT", "LDAP", _ldap_cfg.query_timeout); /* Store the port as an integer for later use. */ _ldap_cfg.port_int = atoi(_ldap_cfg.port); @@ -113,6 +116,8 @@ static void __auth_get_config(void) else _ldap_cfg.scope_int = LDAP_SCOPE_SUBTREE; } + /* Store the timeout as an integer. */ + _ldap_cfg.query_timeout_int = atoi(_ldap_cfg.query_timeout); TRACE(TRACE_DEBUG, "integer ldap scope is [%d]", _ldap_cfg.scope_int); } @@ -141,7 +146,7 @@ static LDAP * ldap_con_get(void) return ld; } int c = 0; - int c_tries = 600; + int c_tries = _ldap_cfg.query_timeout_int; int err = -1; // Start wanting success while (err != 0 && c++ < c_tries) { // Loop until success or too many retries @@ -264,7 +269,7 @@ static LDAPMessage * authldap_search(const gchar *query) char **_ldap_attrs = NULL; int err = -1; // Start wanting success int c = 0; - int c_tries = 600; + int c_tries = _ldap_cfg.query_timeout_int; LDAP *_ldap_conn; g_return_val_if_fail(query!=NULL, NULL); -- 2.10.1 (Apple Git-78)