summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/smbd/process.c6
-rw-r--r--source3/utils/testparm.c5
2 files changed, 11 insertions, 0 deletions
diff --git a/source3/smbd/process.c b/source3/smbd/process.c
index 4b0da0b466..4b7e80811c 100644
--- a/source3/smbd/process.c
+++ b/source3/smbd/process.c
@@ -804,6 +804,12 @@ static BOOL smbd_process_limit(void)
total_smbds = 1; /* In case we need to create the entry. */
+ if (!conn_tdb_ctx()) {
+ DEBUG(0,("smbd_process_limit: max smbd processes parameter set with status parameter not \
+set. Ignoring max smbd restriction.\n"));
+ return False;
+ }
+
if (tdb_change_int_atomic(conn_tdb_ctx(), "INFO/total_smbds", &total_smbds, 1) == -1)
return True;
diff --git a/source3/utils/testparm.c b/source3/utils/testparm.c
index 09948b8635..9397ea2520 100644
--- a/source3/utils/testparm.c
+++ b/source3/utils/testparm.c
@@ -157,6 +157,11 @@ via the %%o substitution. With encrypted passwords this is not possible.\n", lp_
}
}
+ if (lp_status(-1) && lp_max_smbd_processes()) {
+ printf("ERROR: the 'max smbd processes' parameter is set and the 'status' parameter is set to 'no'.\n");
+ ret = 1;
+ }
+
return ret;
}