s3-testparm: Print error if the default backend is incorrect
authorAndreas Schneider <asn@samba.org>
Wed, 7 Dec 2016 16:44:25 +0000 (17:44 +0100)
committerJeremy Allison <jra@samba.org>
Mon, 12 Dec 2016 19:19:10 +0000 (20:19 +0100)
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
source3/utils/testparm.c

index c330ad169594eed9ae6ba52b22398ad13d7b81eb..e0cfaf14d9f5d6288b051966772c738a61ec47ff 100644 (file)
@@ -313,6 +313,32 @@ static int do_global_checks(void)
                fprintf(stderr, "'algorithmic rid base' must be even.\n\n");
        }
 
+       if (lp_server_role() != ROLE_STANDALONE) {
+               const char *default_backends[] = {
+                       "tdb", "tdb2", "ldap", "autorid", "hash"
+               };
+               const char *idmap_backend;
+               bool valid_backend = false;
+               uint32_t i;
+               bool ok;
+
+               idmap_backend = lp_idmap_default_backend();
+
+               for (i = 0; i < ARRAY_SIZE(default_backends); i++) {
+                       ok = strequal(idmap_backend, default_backends[i]);
+                       if (ok) {
+                               valid_backend = true;
+                       }
+               }
+
+               if (!valid_backend) {
+                       ret = 1;
+                       fprintf(stderr, "ERROR: Do not use the '%s' backend "
+                                       "as the default idmap backend!\n\n",
+                                       idmap_backend);
+               }
+       }
+
 #ifndef HAVE_DLOPEN
        if (lp_preload_modules()) {
                fprintf(stderr, "WARNING: 'preload modules = ' set while loading "