src/server/daemon/ldap_auth.c

changeset 473
102322b6f4ee
parent 472
d6bc67906c8c
child 490
d218607f5a7e
--- a/src/server/daemon/ldap_auth.c	Thu Mar 16 19:38:18 2023 +0100
+++ b/src/server/daemon/ldap_auth.c	Thu Mar 16 19:59:11 2023 +0100
@@ -37,6 +37,7 @@
 
 #include <cx/utils.h>
 #include <cx/hash_map.h>
+#include <cx/printf.h>
 
 #include "../util/util.h"
 
@@ -160,7 +161,24 @@
     cxstring userNameIsDn = serverconfig_object_directive_value(node, cx_str("UserNameIsDn"));
     
     if(!resource.ptr) {
-        // TODO: create resource pool
+        // implicitly create a resource pool for this authdb
+        cxmutstr respool_name = cx_asprintf_a(cfg->a, "_authdb_%s", name);
+        if(!respool_name.ptr) {
+            return NULL;
+        }
+        log_ereport(
+                LOG_INFORM,
+                "ldap authdb %s: no resource specified: create resource pool %s",
+                name,
+                respool_name.ptr);
+        if(resourcepool_new(cfg, cx_str("ldap"), cx_strcast(respool_name), node)) {
+            log_ereport(
+                    LOG_FAILURE,
+                    "ldap authdb %s: cannot create ldap resource pool",
+                    name);
+            return NULL;
+        }
+        authdb->config.resource = respool_name.ptr;
     } else {
         authdb->config.resource = cx_strdup_a(cfg->a, resource).ptr;
         if(!authdb->config.resource) return NULL;

mercurial