diff --git a/source3/utils/testparm.c b/source3/utils/testparm.c index e870104a2c5..bb4957ef557 100644 --- a/source3/utils/testparm.c +++ b/source3/utils/testparm.c @@ -215,6 +215,8 @@ static int do_global_checks(void) const struct loadparm_substitution *lp_sub = loadparm_s3_global_substitution(); + fprintf(stderr, "\n"); + if (lp_security() >= SEC_DOMAIN && !lp_encrypt_passwords()) { fprintf(stderr, "ERROR: in 'security=domain' mode the " "'encrypt passwords' parameter must always be " @@ -222,6 +224,26 @@ static int do_global_checks(void) ret = 1; } + if (lp_security() == SEC_ADS) { + const char *workgroup = lp_workgroup(); + const char *realm = lp_realm(); + + if (workgroup == NULL || strlen(workgroup) == 0) { + fprintf(stderr, + "ERROR: The 'security=ADS' mode requires " + "'workgroup' parameter to be set!\n\n "); + ret = 1; + } + + if (realm == NULL || strlen(realm) == 0) { + fprintf(stderr, + "ERROR: The 'security=ADS' mode requires " + "'realm' parameter to be set!\n\n "); + ret = 1; + } + } + + if (lp_we_are_a_wins_server() && lp_wins_server_list()) { fprintf(stderr, "ERROR: both 'wins support = true' and " "'wins server = ' cannot be set in "