src/server/daemon/ldap_resource.h

Wed, 05 Jun 2024 19:50:44 +0200

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Wed, 05 Jun 2024 19:50:44 +0200
changeset 537
ad44e72fbf50
parent 464
0a29110b94ec
permissions
-rw-r--r--

add extra nullptr check in the event loop to handle the case when the finish ptr is set to NULL after it was already scheduled

461
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
1 /*
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
3 *
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
4 * Copyright 2023 Olaf Wintermann. All rights reserved.
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
5 *
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
6 * Redistribution and use in source and binary forms, with or without
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
7 * modification, are permitted provided that the following conditions are met:
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
8 *
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
9 * 1. Redistributions of source code must retain the above copyright
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
10 * notice, this list of conditions and the following disclaimer.
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
11 *
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
12 * 2. Redistributions in binary form must reproduce the above copyright
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
13 * notice, this list of conditions and the following disclaimer in the
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
14 * documentation and/or other materials provided with the distribution.
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
15 *
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
26 * POSSIBILITY OF SUCH DAMAGE.
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
27 */
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
28
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
29 #ifndef LDAP_RESOURCE_H
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
30 #define LDAP_RESOURCE_H
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
31
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
32 #include "resourcepool.h"
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
33
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
34 #include <ldap.h>
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
35
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
36 #ifdef __cplusplus
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
37 extern "C" {
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
38 #endif
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
39
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
40 #ifndef LDAP_PORT
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
41 #define LDAP_PORT 389
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
42 #endif
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
43 #ifndef LDAPS_PORT
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
44 #define LDAPS_PORT 636
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
45 #endif
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
46
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
47 typedef struct LDAPResourcePool {
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
48 /*
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
49 * ResourcePool parameters
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
50 */
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
51 pblock *param;
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
52
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
53 /*
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
54 * Cfg memorypool
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
55 */
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
56 pool_handle_t *pool;
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
57
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
58 /*
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
59 * ResourcePool name
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
60 */
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
61 const char *name;
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
62
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
63 /*
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
64 * ldap uri
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
65 */
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
66 char *ldap_uri;
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
67
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
68 /*
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
69 * ldap host
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
70 *
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
71 * only used when no ldap_uri is specified
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
72 */
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
73 char *host;
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
74
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
75 /*
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
76 * ldap port
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
77 */
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
78 int port;
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
79
462
72848970541a add bind parameters to ldap resource pool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 461
diff changeset
80 /*
72848970541a add bind parameters to ldap resource pool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 461
diff changeset
81 * admin binddn
72848970541a add bind parameters to ldap resource pool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 461
diff changeset
82 */
72848970541a add bind parameters to ldap resource pool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 461
diff changeset
83 char *binddn;
72848970541a add bind parameters to ldap resource pool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 461
diff changeset
84
72848970541a add bind parameters to ldap resource pool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 461
diff changeset
85 /*
72848970541a add bind parameters to ldap resource pool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 461
diff changeset
86 * admin bindpw
72848970541a add bind parameters to ldap resource pool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 461
diff changeset
87 */
72848970541a add bind parameters to ldap resource pool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 461
diff changeset
88 char *bindpw;
72848970541a add bind parameters to ldap resource pool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 461
diff changeset
89
72848970541a add bind parameters to ldap resource pool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 461
diff changeset
90 /*
72848970541a add bind parameters to ldap resource pool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 461
diff changeset
91 * bind every LDAP session to binddn
72848970541a add bind parameters to ldap resource pool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 461
diff changeset
92 */
72848970541a add bind parameters to ldap resource pool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 461
diff changeset
93 WSBool bind;
72848970541a add bind parameters to ldap resource pool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 461
diff changeset
94
461
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
95
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
96 } LDAPResourcePool;
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
97
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
98 typedef struct LDAPResource {
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
99 LDAP *ldap;
462
72848970541a add bind parameters to ldap resource pool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 461
diff changeset
100 LDAPResourcePool *res_pool;
461
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
101 } LDAPResource;
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
102
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
103 ResourceType* ldap_get_resource_type(void);
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
104
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
105
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
106 LDAP* ws_ldap_resource_create_connection(
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
107 const char *hostname,
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
108 int port,
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
109 int ssl,
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
110 int ldap_version);
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
111
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
112 LDAP* ws_ldap_resource_create_uri_connection(
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
113 const char *uri,
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
114 int ldap_version);
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
115
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
116 void ws_ldap_close(LDAP *ldap);
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
117
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
118
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
119 /* resource pool implementation functions */
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
120 void * ldap_resourcepool_init(pool_handle_t *pool, const char *rpname, pblock *pb);
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
121 void ldap_resourcepool_destroy(LDAPResourcePool *pool);
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
122 void * ldap_resourcepool_createresource(LDAPResourcePool *respool);
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
123 void ldap_resourcepool_freeresource(LDAPResourcePool *pool, LDAPResource *res);
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
124 int ldap_resourcepool_prepare(LDAPResourcePool *pool, LDAPResource *res);
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
125 int ldap_resourcepool_finish(LDAPResourcePool *pool, LDAPResource *res);
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
126 void * ldap_resourcepool_getresourcedata(LDAPResource *res);
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
127
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
128
462
72848970541a add bind parameters to ldap resource pool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 461
diff changeset
129 int ldap_resource_bind(LDAPResourcePool *respool, LDAP *ldap, struct berval **server_cred);
72848970541a add bind parameters to ldap resource pool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 461
diff changeset
130
464
0a29110b94ec add ldap-query saf
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 462
diff changeset
131 int ws_ldap_bind(LDAP *ldap, const char *binddn, const char *bindpw, struct berval **server_cred);
0a29110b94ec add ldap-query saf
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 462
diff changeset
132
462
72848970541a add bind parameters to ldap resource pool
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 461
diff changeset
133
461
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
134
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
135 #ifdef __cplusplus
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
136 }
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
137 #endif
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
138
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
139 #endif /* LDAP_RESOURCE_H */
9b20b8f3582b add ldap resource pool type implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
140

mercurial