-static void lsasd_prefork_config(void)
-{
- static int lsasd_prefork_config_init = false;
- const char *prefork_str;
- int min, max, rate;
- bool use_defaults = false;
- int ret;
-
- if (!lsasd_prefork_config_init) {
- lsasd_prefork_status = LSASD_ALL_FINE;
- lsasd_min_children = 0;
- lsasd_max_children = 0;
- lsasd_spawn_rate = 0;
- lsasd_prefork_config_init = true;
- }
-
- prefork_str = lp_parm_const_string(GLOBAL_SECTION_SNUM,
- "lsasd", "prefork", "none");
- if (strcmp(prefork_str, "none") == 0) {
- use_defaults = true;
- } else {
- ret = sscanf(prefork_str, "%d:%d:%d", &min, &max, &rate);
- if (ret != 3) {
- DEBUG(0, ("invalid format for lsasd:prefork!\n"));
- use_defaults = true;
- }
- }
-
- if (use_defaults) {
- min = LSASD_MIN_CHILDREN;
- max = LSASD_MAX_CHILDREN;
- rate = LSASD_SPAWN_RATE;
- }
-
- if (max > lsasd_max_children && lsasd_max_children != 0) {
- lsasd_prefork_status |= LSASD_NEW_MAX;
- }
-
- lsasd_min_children = min;
- lsasd_max_children = max;
- lsasd_spawn_rate = rate;
-}
-