summaryrefslogtreecommitdiff
path: root/mail/dbmail/files/patch-0015-Get-timeout-from-config
blob: b0f879c4da2b44cdab45353f0fdb0902d9084608 (plain) (blame)
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)