1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
From af47f87dec649ad495a704926d5e0e004ad17301 Mon Sep 17 00:00:00 2001
From: Alan Hicks <ahicks@p-o.co.uk>
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)
|