Lines Matching refs:set

251 	    const struct master_settings *set)
257 *user = set->default_internal_user;
260 *user = set->default_login_user;
268 expand_group(const char **group, const struct master_settings *set)
274 *group = set->default_internal_group;
291 struct file_listener_settings *set = *sets;
293 if (set->path[0] == '\0') {
298 expand_user(&set->user, &user_default, master_set);
299 expand_group(&set->group, master_set);
300 if (*set->path != '/') {
301 set->path = p_strconcat(pool, master_set->base_dir, "/",
302 set->path, NULL);
303 } else if (strncmp(set->path, master_set->base_dir,
305 set->path[base_dir_len] == '/') {
307 "unix_listener: %s", set->path);
309 if (set->mode != 0)
310 array_append(all_listeners, &set->path, 1);
325 struct inet_listener_settings *set = *sets;
327 if (set->port != 0) {
328 str = t_strdup_printf("%u:%s", set->port, set->address);
334 static bool master_settings_parse_type(struct service_settings *set,
337 if (*set->type == '\0')
338 set->parsed_type = SERVICE_TYPE_UNKNOWN;
339 else if (strcmp(set->type, "log") == 0)
340 set->parsed_type = SERVICE_TYPE_LOG;
341 else if (strcmp(set->type, "config") == 0)
342 set->parsed_type = SERVICE_TYPE_CONFIG;
343 else if (strcmp(set->type, "anvil") == 0)
344 set->parsed_type = SERVICE_TYPE_ANVIL;
345 else if (strcmp(set->type, "login") == 0)
346 set->parsed_type = SERVICE_TYPE_LOGIN;
347 else if (strcmp(set->type, "startup") == 0)
348 set->parsed_type = SERVICE_TYPE_STARTUP;
351 set->type, NULL);
357 static void service_set_login_dump_core(struct service_settings *set)
361 if (set->parsed_type != SERVICE_TYPE_LOGIN)
364 p = strstr(set->executable, " -D");
366 set->login_dump_core = TRUE;
370 services_have_protocol(struct master_settings *set, const char *name)
374 array_foreach(&set->services, services) {
399 service_get_client_limit(struct master_settings *set, const char *name)
403 array_foreach(&set->services, servicep) {
408 return set->default_client_limit;
411 return set->default_client_limit;
418 struct master_settings *set = _set;
431 unsigned int max_client_limit = set->default_client_limit;
434 if (*set->listen == '\0') {
435 *error_r = "listen can't be set empty";
439 len = strlen(set->base_dir);
440 if (len > 0 && set->base_dir[len-1] == '/') {
442 set->base_dir = p_strndup(pool, set->base_dir, len - 1);
445 if (set->last_valid_uid != 0 &&
446 set->first_valid_uid > set->last_valid_uid) {
450 if (set->last_valid_gid != 0 &&
451 set->first_valid_gid > set->last_valid_gid) {
456 if (i_getpwnam(set->default_login_user, &pw) == 0) {
458 set->default_login_user);
461 if (i_getpwnam(set->default_internal_user, &pw) == 0) {
463 set->default_internal_user);
469 if (!array_is_created(&set->services) ||
470 array_count(&set->services) == 0) {
474 services = array_get(&set->services, &count);
493 expand_user(&service->user, &service->user_default, set);
494 expand_group(&service->extra_groups, set);
497 set->protocols_split = p_strsplit_spaces(pool, set->protocols, " ");
498 if (set->protocols_split[0] != NULL &&
499 strcmp(set->protocols_split[0], "none") == 0 &&
500 set->protocols_split[1] == NULL)
501 set->protocols_split[0] = NULL;
503 for (i = 0; set->protocols_split[i] != NULL; i++) {
504 if (!services_have_protocol(set, set->protocols_split[i])) {
507 set->protocols_split[i]);
518 !str_array_find((const char **)set->protocols_split,
527 p_strconcat(pool, set->libexec_dir, "/",
532 p_strconcat(pool, set->base_dir, "/",
544 process_limit = set->default_process_limit;
588 set, &all_listeners, error_r)) {
594 set, &all_listeners, error_r)) {
602 client_limit = service_get_client_limit(set, "auth");
610 client_limit = service_get_client_limit(set, "anvil");
642 login_want_core_dumps(const struct master_settings *set, gid_t *gid_r)
651 array_foreach(&set->services, services) {
666 settings_have_auth_unix_listeners_in(const struct master_settings *set,
673 array_foreach(&set->services, services) {
742 mkdir_login_dir(const struct master_settings *set, const char *login_dir)
747 if (settings_have_auth_unix_listeners_in(set, login_dir)) {
753 mode = login_want_core_dumps(set, &gid) ? 0770 : 0750;
767 void master_settings_do_fixes(const struct master_settings *set)
774 if (mkdir_parents(set->base_dir, 0755) < 0 && errno != EEXIST)
775 i_fatal("mkdir(%s) failed: %m", set->base_dir);
777 if (stat(set->base_dir, &st) < 0)
778 i_fatal("stat(%s) failed: %m", set->base_dir);
780 i_fatal("%s is not a directory", set->base_dir);
783 set->base_dir);
784 if (chmod(set->base_dir, 0755) < 0)
785 i_error("chmod(%s) failed: %m", set->base_dir);
789 if (mkdir_parents(set->state_dir, 0755) < 0 && errno != EEXIST)
790 i_fatal("mkdir(%s) failed: %m", set->state_dir);
792 mkdir_login_dir(set, t_strconcat(set->base_dir, "/login", NULL));
793 mkdir_login_dir(set, t_strconcat(set->base_dir, "/token-login", NULL));
795 empty_dir = t_strconcat(set->base_dir, "/empty", NULL);